Wikipedia:Sandbox: Difference between revisions
Undid revision 985762389 by BreakfastNoob16 (talk) |
No edit summary Tag: Reverted |
||
Line 5: | Line 5: | ||
* Feel free to try your editing skills below * |
* Feel free to try your editing skills below * |
||
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■--> |
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■--> |
||
'''High Performance Fortran''' ('''HPF''') is an extension of [[Fortran|Fortran 90]] with constructs that support [[parallel computing]], published by the ''High Performance Fortran Forum'' (HPFF). The HPFF was convened and chaired by [[Ken Kennedy (computer scientist)|Ken Kennedy]] of [[Rice University]]. The first version of the HPF Report was published in 1993. |
|||
Building on the array syntax introduced in Fortran 90, HPF uses a [[data parallelism|data parallel]] model of computation to support spreading the work of a single [[Array data structure|array]] computation over multiple processors. This allows efficient implementation on both [[SIMD]] and [[MIMD]] style architectures. HPF features included: |
|||
* New Fortran statements, such as <code>FORALL</code>, and the ability to create [[pure function|<code>PURE</code>]] ([[side effect (computer science)|side effect]] free) procedures |
|||
* Compiler directives for recommended distributions of array data |
|||
* ''Extrinsic procedure'' interface for interfacing to non-HPF parallel procedures such as those using [[message passing]] |
|||
* Additional library routines - including environmental inquiry, parallel prefix/suffix (e.g., [[prefix sum|'scan']]), data scattering, and [[sorting]] operations |
|||
Fortran 95 incorporated several HPF capabilities. In response, the HPFF again convened and published the HPF 2.0 Report. The updated report removed material which was already covered by Fortran 95. The report was also reorganized and revised based on experience with HPF 1.0. |
|||
While some vendors did incorporate HPF into their compilers in the 1990s, some aspects proved difficult to implement and of questionable use. Since then, most vendors and users have moved to [[OpenMP]]-based parallel processing.{{citation needed|date=March 2007}} However HPF continues to have influence. For example, the proposed <code>BIT</code> data type for the upcoming{{Update inline|?=yes|date=August 2016}} [[Fortran#Fortran 2008|Fortran-2008]] standard contains a number of new intrinsic functions taken directly from HPF. |
|||
==See also== |
|||
* [[Partitioned global address space]] |
|||
==External links== |
|||
* [http://hpff.rice.edu HPFF] - [[Rice University]] HPF Forum |
|||
* http://wotug.org/parallel/standards/hpf |
|||
* [ftp://ftp.fhg.de/archive/gmd/adaptor/ ADAPTOR]- An open-source HPF compilation system |
|||
* [http://www.par.univie.ac.at/project/hpf+/ HPF+] - HPF for advanced applications |
|||
* [http://portal.acm.org/citation.cfm?id=1238844.1238851 The rise and fall of High Performance Fortran: an historical object lesson] |
|||
[[Category:Concurrent programming languages]] |
|||
[[Category:Fortran programming language family]] |
Revision as of 20:25, 27 October 2020
Welcome to this sandbox page, a space to experiment with editing.
You can either edit the source code ("Edit source" tab above) or use VisualEditor ("Edit" tab above). Click the "Publish changes" button when finished. You can click "Show preview" to see a preview of your edits, or "Show changes" to see what you have changed. Anyone can edit this page and it is automatically cleared regularly (anything you write will not remain indefinitely). Click here to reset the sandbox. You can access your personal sandbox by clicking here, or using the "Sandbox" link in the top right.Creating an account gives you access to a personal sandbox, among other benefits. Do NOT, under any circumstances, place promotional, copyrighted, offensive, or libelous content in sandbox pages. Doing so WILL get you blocked from editing. For more info about sandboxes, see Wikipedia:About the sandbox and Help:My sandbox. New to Wikipedia? See the contributing to Wikipedia page or our tutorial. Questions? Try the Teahouse! |
High Performance Fortran (HPF) is an extension of Fortran 90 with constructs that support parallel computing, published by the High Performance Fortran Forum (HPFF). The HPFF was convened and chaired by Ken Kennedy of Rice University. The first version of the HPF Report was published in 1993.
Building on the array syntax introduced in Fortran 90, HPF uses a data parallel model of computation to support spreading the work of a single array computation over multiple processors. This allows efficient implementation on both SIMD and MIMD style architectures. HPF features included:
- New Fortran statements, such as
FORALL
, and the ability to createPURE
(side effect free) procedures - Compiler directives for recommended distributions of array data
- Extrinsic procedure interface for interfacing to non-HPF parallel procedures such as those using message passing
- Additional library routines - including environmental inquiry, parallel prefix/suffix (e.g., 'scan'), data scattering, and sorting operations
Fortran 95 incorporated several HPF capabilities. In response, the HPFF again convened and published the HPF 2.0 Report. The updated report removed material which was already covered by Fortran 95. The report was also reorganized and revised based on experience with HPF 1.0.
While some vendors did incorporate HPF into their compilers in the 1990s, some aspects proved difficult to implement and of questionable use. Since then, most vendors and users have moved to OpenMP-based parallel processing.[citation needed] However HPF continues to have influence. For example, the proposed BIT
data type for the upcoming[needs update?] Fortran-2008 standard contains a number of new intrinsic functions taken directly from HPF.
See also
External links
- HPFF - Rice University HPF Forum
- http://wotug.org/parallel/standards/hpf
- ADAPTOR- An open-source HPF compilation system
- HPF+ - HPF for advanced applications
- The rise and fall of High Performance Fortran: an historical object lesson