Kompilacja aplikacji równoległych: Różnice pomiędzy wersjami
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 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
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