Kompilacja aplikacji równoległych: Różnice pomiędzy wersjami

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 3: Linia 3:
 
Znakomita większość oprogramowania na klastrze zainstalowana jest tak, aby korzystała z któregoś z protokołów wymiany informacji między procesami ([[MPI |mpi]],[[OpenMP | OpenMP]],[[PVM | PVM]]).
 
Znakomita większość oprogramowania na klastrze zainstalowana jest tak, aby korzystała z któregoś z protokołów wymiany informacji między procesami ([[MPI |mpi]],[[OpenMP | OpenMP]],[[PVM | PVM]]).
 
Podczas kompilacji rónoległych aplikacji należy odnieść się, odpowiednio [[korzystanie z modułów | konfigurując srodowisko systemowe]], do bibliotek wspomnianych wyżej protokołów.
 
Podczas kompilacji rónoległych aplikacji należy odnieść się, odpowiednio [[korzystanie z modułów | konfigurując srodowisko systemowe]], do bibliotek wspomnianych wyżej protokołów.
 +
 +
===Odpowiednie ustawienie środowiska pracy polega na:===
 +
* załadowaniu modułu dla wybranego kompilatora np.
 +
module load intel/12.0
 +
intel/12.0 load complete
 +
* załadowaniu odpowiednich bibiliotek mpi-owych np.
 +
  module load mvapich2/1.5.1p1
 +
  mvapich2/1.5.1p1 load complete
 +
'''Należy pamiętać, aby biblioteki mpi-owe zostały zbudowane wersją kompilatora, na kŧórą wskazują<br/> zmienne środowiskowe.'''
 +
* załadowabnie innych bibliotek wymaganych przez kompilowaną aplikację, na przykład matematycznych:
 +
module load mkl/12.0.1.107
 +
mkl/12.0.1.107 load complete
  
 
Na przykład, linkowanie z bibliotekami mvapich2 (jedna z implementacji standardu [[MPI | mpi]]-2) budowanymi intelowskimi kompilatorami można uczynić na dwa sposoby:
 
Na przykład, linkowanie z bibliotekami mvapich2 (jedna z implementacji standardu [[MPI | mpi]]-2) budowanymi intelowskimi kompilatorami można uczynić na dwa sposoby:
Linia 26: Linia 38:
 
* mvapich2/1.6  
 
* mvapich2/1.6  
 
* mvapich2/1.6_gcc
 
* mvapich2/1.6_gcc
 
===Odpowiednie ustawienie środowiska pracy polega na:===
 
* załadowaniu modułu dla wybranego kompilatora np.
 
module load intel/12.0
 
intel/12.0 load complete
 
* załadowaniu odpowiednich bibiliotek mpi-owych np.
 
  module load mvapich2/1.5.1p1
 
  mvapich2/1.5.1p1 load complete
 
'''Należy pamiętać, aby biblioteki mpi-owe zostały zbudowane wersją kompilatora, na kŧórą wskazują<br/> zmienne środowiskowe.'''
 
* załadowabnie innych bibliotek wymaganych przez kompilowaną aplikację, na przykład matematycznych:
 
module load mkl/12.0.1.107
 
mkl/12.0.1.107 load complete
 

Wersja z 12:50, 30 sie 2011

< Podręcznik użytkownika KDM < Kompilacja aplikacji równoległych

Znakomita większość oprogramowania na klastrze zainstalowana jest tak, aby korzystała z któregoś z protokołów wymiany informacji między procesami (mpi, OpenMP, PVM). Podczas kompilacji rónoległych aplikacji należy odnieść się, odpowiednio konfigurując srodowisko systemowe, do bibliotek wspomnianych wyżej protokołów.

Odpowiednie ustawienie środowiska pracy polega na:

  • załadowaniu modułu dla wybranego kompilatora np.
module load intel/12.0 
intel/12.0 load complete
  • załadowaniu odpowiednich bibiliotek mpi-owych np.
 module load mvapich2/1.5.1p1
 mvapich2/1.5.1p1 load complete
Należy pamiętać, aby biblioteki mpi-owe zostały zbudowane wersją kompilatora, na kŧórą wskazują
zmienne środowiskowe.
  • załadowabnie innych bibliotek wymaganych przez kompilowaną aplikację, na przykład matematycznych:
module load mkl/12.0.1.107
mkl/12.0.1.107 load complete

Na przykład, linkowanie z bibliotekami mvapich2 (jedna z implementacji standardu mpi-2) budowanymi intelowskimi kompilatorami można uczynić na dwa sposoby:

  • przy pomocy wrapera na kompilator
module load mvapich2/1.5.1p1
mvapich2/1.5.1p1
echo $PATH
/usr/local/mpi/intel/mvapich2-1.5.1p1-intel_composerxe-2011.1.107/bin/
which mpif90
/usr/local/mpi/intel/mvapich2-1.5.1p1-intel_composerxe-2011.1.107/bin/mpif90
Wraper mpif90 odpowiednio ustawia flagi kopmilatora ifort (standard - fortran90), tak aby aplikacja korzystała z komunikacji międzyprocesowej.
  • ręcznie ustawiając odpowiednie flagi

Na klastrze Supernova zainstalowano wiele bibliotek implementujących standardy mpi, mpi-2 oraz OpenMP przy użyciu pakietów kompilatorów opensource`owych (gcc) oraz dostarczonych od intela.

Na przykład.

  • openmpi/1.4.3
  • openmpi/1.4.3-intel_10.1
  • openmpi/1.4.3_gcc412
  • openmpi/1.4.3_gcc453
  • mvapich2/1.5.1p1
  • mvapich2/1.6
  • mvapich2/1.6_gcc