OpenMP

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk

OpenMP (engelsk: Open Multi-Processing) er en API for SIMD multiprosessering i programmeringsspråkene C, C++ og Fortran. Den er tilgjengelig for mange datamaskinarkitekturer og operativsystemer, deriblant Unix, Unix-liknende systemer og Microsoft Windows.

OpenMP består av et sett kompilator-direktiver, biblioteksrutiner og miljø-variabler. APIen utvider programmeringsspråkets syntaks på en slik måte at man kan utvikle parallelle programmer på ulike plattformer, fra personlige datamaskiner til superdatamaskiner. I dataklynger kan den parallelle utførelsen i OpenMP kombineres med et meldingsbasert grensesnitt.

Historikk[rediger | rediger kilde]

OpenMP er definert av en gruppe større maskinvare- og programvareselskaper. The OpenMP Architecture Review Board (ARB) publiserte spesifikasjonen OpenMP for Fortran 1.0 i oktober 1997. I oktober 1998 fulgte OpenMP for C/C++ 1.0. OpenMP for Fortran 2.0 fulgte i 2000, og OpenMP for C/C++ 2.0 i 2002. Versjon 2.5 er en kombinert spesifikasjon for C/C++/Fortran, som ble utgitt i 2005. Den nåværende versjon, OpenMP 3.0, ble utgitt i mai 2008.

Implementasjoner[rediger | rediger kilde]

OpenMP er blitt implementert i flere kommersielle kompilatorer, deriblant kompilatorer fra Intel, Microsoft Visual C++ 2005, Sun Studio Express for Solaris OS (UltraSPARC and x86/x64) og Linux. PGI Visual Fortran fra The Portland Group støtter OpenMP 2.5.

OpenMP 2.5 i C/C++ og Fortran-95 ble introdusert i GNU Compiler Collection versjon 4.2. OpenMP 3.0 ble lansert i versjonene 4.3 og 4.4.

Andre kompilatorer med støtte for OpenMP 3.0 er:

  • Sun Studio Express November 2008 Release
  • Nanos compiler
  • Intel C++ 11 compiler