Parallel Languages

From Cluster Documentation Project
Jump to: navigation, search

Languages and libraries that support parallel computation:

  • HPF - High Performance Fortran
    An extension of Fortran 90 in two directions (or an extension of Fortran 95 in one direction) which includes added directives to tell the compiler how to distribute the data and to provide assertions (Promises) that improve the optimization of the generated code and added features to Fortran 90 to supply missing data parallel constructs (these are now in Fortran 95).
  • LINDA - parallel language extensions
    Linda is a coordination language which supplies the "glue" needed to cement many independent processes together into a single parallel program. Linda provides a virtual shared memory (VSM) that is logically shared by all the processes in a parallel program. Processes in a Linda parallel program execute simultaneously and exchange data by generating, reading, and consuming data objects in the VSM using four basic operations.
  • UPC - Unified Parallel C
    Unified Parallel C (UPC) is an extension of the C programming language designed for high performance computing on large-scale parallel machines.The language provides a uniform programming model for both shared and distributed memory hardware. The programmer is presented with a single shared, partitioned address space, where variables may be directly read and written by any processor, but each variable is physically associated with a single processor. UPC uses a Single Program Multiple Data (SPMD) model of computation in which the amount of parallelism is fixed at program startup time, typically with a single thread of execution per processor.
  • ZPL - parallel matrix language
    ZPL is an array programming language designed from first principles for fast execution on both sequential and parallel computers. It provides a convenient high-level programming medium for supercomputers and large-scale clusters with efficiency comparable to hand-coded message passing. It is the perfect alternative to using a sequential language like C or Fortran and a message passing library like MPI.
  • OpenMP - OpenMP is a specification for a set of compiler directives, library routines, and environment variables that can be used to specify shared memory parallelism in Fortran and C/C++ programs.