Compilador PGI

companyia que ha desenvolupat un conjunt comercial de compiladors per Fortran, C i C++
Compilador PGI
Versió inicial 1991
Llenguatges Fortran, C i C++
Sistema operatiu Windows, Linux i macOS
Desenvolupador The Portland Group
Propietari NVIDIA
Extensions

compatibles

OpenMP i OpenACC
Tipus Conjunt de compiladors

Els compiladors PGI són un conjunt de compiladors de C, C++ i Fortran que són aptes per a sistemes d'alt rendiment.

Els compiladors de PGI permeten desenvolupar aplicacions per a diferents tipus de processadors i targetes gràfiques d'NVIDIA. S'utilitzen tant en estacions de treball comunes com en els computadors més ràpids del món, inclòs el supercomputador del Top500 #1 Summit Supercomputer,[1] on s'executen aplicacions orientades a la química quàntica, al clima, a la dinàmica molecular i a l'astrofísica.

Història modifica

Els compiladors PGI van ser desenvolupats per l'empresa The Portland Group (PGI), fundada l'any 1989. Dos anys després van publicar la primera versió de compiladors per als llenguatges Fortran i C, que van ser dissenyats per al processador Intel i860. Aquests compiladors van ser utilitzats per supercomputadors com l'iPSC/860, el Touchstone Delta i el Paragon.

A principis dels anys noranta PGI es va involucrar al desenvolupament de High Performance Fortran (HPF), una extensió del llenguatge de dades paral·leles anomenat Fortran 90.

L'any 2000 The Portland Group va ser comprada per l'empresa STMicroelectronics per produir compiladors basats en la High Performance Computing (HPC) en Linux, Windows i MacOS.

El 2013 NVIDIA va adquirir The Portland Group de STMicroelectronics per continuar desenvolupant els mateixos compiladors sota la marca “PGI Compilers and Tools”.[2][3]

Més tard, va aparèixer un nou compilador anomenat CUDA Fortran,[4] pensat per funcionar en programes orientats al còmput d'altes prestacions mitjançant l'ús de les targetes gràfiques d'NVIDIA i que inclou directives de programació.[5][6]

Compilador modifica

PGI al núvol modifica

Els compiladors de l'edició PGI Community Edition[7] per a Linux/x86-64 es poden usar com a imatge d'un contenidor al núvol d'NVIDIA anomenat NVIDIA GPU Cloud (NGC) i al mercat Amazon Web Services (AWS). Aquestes imatges són compatibles amb els processadors multicore i amb les targetes gràfiques d'NVIDIA (inclosa la família Volta V100)[8] més recents i inclouen compiladors Fortran, C i C++ habilitats per OpenACC.

CUDA Fortran modifica

CUDA Fortran[4] s'inclou a tots els compiladors PGI Fortran i la versió de lliure accés està disponible a l'edició PGI Community Edition.

PGI OpenACC modifica

Afegint directives del compilador que ofereix OpenACC es poden accelerar les aplicacions.

Els compiladors PGI OpenACC estan orientats a tots els acceleradors de targetes gràfiques de NVIDIA Tesla[9] amb capacitat de còmput 2.0 o superior a Linux i Windows.

Amb la versió de PGI 15.10 també es poden usar processadors multinucli 64-bit x86 usant Linux, Windows i macOS.

PCAST modifica

PGI Compiler Assisted Software Testing (PCAST)[10] és un conjunt de capacitats destinades a testejar com de correcte és un programa i a determinar els punts de divergència entre les versions de codi del processador i la targeta gràfica, i també entre el mateix codi executant-se en arquitectures diferents del processador.

Perfilador de rendiment modifica

PGI té un analitzador estadístic[11] de programes paral·lels escrits amb directives OpenMP o OpenACC o accelerades mitjançant CUDA. Serveix per visualitzar el rendiment de tot allò que compon el programa i també proveeix ajudes per entendre per què algunes parts del programa tenen un temps d'execució més elevat. Amb aquesta informació es pot maximitzar la vectorització i el rendiment en un sol nucli del processador.

Aquest perfilador de rendiment és compatible amb codis font escrits en Fortran, C i C++, siguin o no compilats amb PGI.

Utilitzant el Common Compiler Feedback Format (CCFF) PGI desa la informació sobre com ha estat optimitzat el programa (el perquè s'ha fet o s'ha descartat una optimització concreta). Aleshores, el PGI Profiler s'encarrega d'extreure aquesta informació i associar-la amb el codi font i altres dades de rendiment per permetre veure-les totes simultàniament.

Depuració modifica

El PGI Debugger[12] va ser eliminat a partir de la versió 20.1 de PGI (6 de febrer de 2020).

El depurador de PGI és compatible amb Linux x86, macOS i Windows i és capaç de depurar programes en sèrie i en paral·lel i aplicacions amb MPI i/o OpenMP en estacions de treball SMP, en servidors, en clústers de memòria distribuïda i en clústers híbrids on cada node conté diversos processadors multinucli de 64 bits.

Llenguatges de programació modifica

El compilador PGI inclou:

També és compatible amb les extensions del llenguatge paral·lel OpenACC i OpenMP.

Arquitectures modifica

Els compiladors PGI són admesos per una gran varietat de sistemes operatius de Linux, macOS i Windows que funcionin en processadors compatibles amb una arquitectura de 64-bit x86, i en Linux sobre processadors OpenPOWER. (Actualment, el depurador PGI només funciona en x86-64/x64.)

A continuació, es mostren els requisits del sistema:

  • Processador de la màquina: 64-bit OpenPOWER, 64-bit x86 (inclòs AMD64[13] i Intel 64)[14] estació de treball o servidor amb un o més processadors d'un sol nucli o multinucli. Accelerador (opcional): NVIDIA CUDA-enabled GPU amb capacitat de càlcul 3.0 o posterior.
  • Sistema operatiu:
    • Linux POWER9: Linux Red Hat Enterprise 7.5 per a IBM Power LE.
    • Linux POWER8: Ubuntu 14.04, 16.04, 18.04, Linux Red Hat Enterprise de 7.3 a 7.6.
    • Linux x86-64: de CentOS 6.4 a CentOS 7.6, d'OpenSuSE Leap 42.2 a openSUSE Leap 15.0, de SUSE Linux Enterprise Server (SLES) 12 SP 2 a SLES 15, de Red Hat Enterprise Linux 6.4 a Red Hat Enterprise Linux 7.6, de Fedora 14 a Fedora 29, o Ubuntu 14.04, 16.04, 17.10, 18.04 i 18.10. És interoperable amb la majoria de versions de Linux mitjançant la revisió del kernel 2.6 i glibc 2.5 o més recent.
    • Microsoft Windows 64-bit 7/8.1/10 i Servidor 2008 R2/2012/2016/2019.
  • L'última versió en què els productes PGI són compatibles amb 32-bit és la 16.10.

Desenvolupament modifica

Actualment, la versió estable de PGI és la 20.1, que va ser publicada el 6 de febrer de 2020.

Llicència modifica

L'ús del programari PGI depèn de l'acceptació de l'acord de llicència de l'usuari final.[15]

Les llicències dels usuaris amb PGI Professional poden gestionar permanentment les claus de la llicència després de la compra.

Les publicacions de la PGI Community Edition inclouen una clau de llicència específica per a aquesta versió.

Referències modifica

Vegeu també modifica

Enllaços externs modifica