Kompilacja aplikacji równoległych: Różnice pomiędzy wersjami
Linia 1: | Linia 1: | ||
<small>< [[Podręcznik użytkownika KDM]] < [[Kompilacja aplikacji równoległych]]</small> | <small>< [[Podręcznik użytkownika KDM]] < [[Kompilacja aplikacji równoległych]]</small> | ||
− | Znakomita większość oprogramowania na klastrze zainstalowana jest tak, aby korzystała z | + | Znakomita większość oprogramowania na klastrze [[Supernova]] zainstalowana jest tak, aby korzystała z jednego ze sposobów wymiany informacji między procesami ([[MPI|MPI]], [[OpenMP|OpenMP]], [[PVM|PVM]]). |
− | Podczas kompilacji | + | Podczas kompilacji aplikacji równoległych należy odnieść się, odpowiednio [[korzystanie z modułów |konfigurując środowisko systemowe]], do bibliotek wspomnianych wyżej protokołów. |
===Ustawienie środowiska pracy polega na:=== | ===Ustawienie środowiska pracy polega na:=== | ||
Linia 8: | Linia 8: | ||
module load intel/12.0 | module load intel/12.0 | ||
intel/12.0 load complete | intel/12.0 load complete | ||
− | * załadowaniu odpowiednich | + | * załadowaniu odpowiednich bibliotek MPI-owych np. |
module load mvapich2/1.5.1p1 | module load mvapich2/1.5.1p1 | ||
mvapich2/1.5.1p1 load complete | mvapich2/1.5.1p1 load complete | ||
− | '''Należy pamiętać, aby biblioteki | + | '''Należy pamiętać, aby biblioteki MPI-owe zostały zbudowane wersją kompilatora, na kŧórą wskazują<br/> zmienne środowiskowe.''' |
− | * | + | * załadowanie innych bibliotek wymaganych przez kompilowaną aplikację, na przykład matematycznych: |
module load mkl/12.0.1.107 | module load mkl/12.0.1.107 | ||
mkl/12.0.1.107 load complete | mkl/12.0.1.107 load complete | ||
Linia 18: | Linia 18: | ||
===Proces kompilacji=== | ===Proces kompilacji=== | ||
− | Najłatwiej skorzystać z wrapera. Wraper to skrypt, który odwołuje się do | + | Najłatwiej skorzystać z wrapera. Wraper to skrypt, który odwołuje się do właściwego kompilatora i ustawia za użytkownika odpowiednie opcje. Opcje związane są m.in. ze sposobem linkowania [http://pl.wikipedia.org/wiki/Biblioteka_wsp%C3%B3%C5%82dzielona współdzielonych_bibliotek] (shared objects) mpi-owych. |
{| class="wikitable" style="text-align:right" | {| class="wikitable" style="text-align:right" |
Wersja z 14:34, 31 sie 2011
< Podręcznik użytkownika KDM < Kompilacja aplikacji równoległych
Znakomita większość oprogramowania na klastrze Supernova zainstalowana jest tak, aby korzystała z jednego ze sposobów wymiany informacji między procesami (MPI, OpenMP, PVM). Podczas kompilacji aplikacji równoległych należy odnieść się, odpowiednio konfigurując środowisko systemowe, do bibliotek wspomnianych wyżej protokołów.
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 bibliotek 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ładowanie innych bibliotek wymaganych przez kompilowaną aplikację, na przykład matematycznych:
module load mkl/12.0.1.107 mkl/12.0.1.107 load complete
Proces kompilacji
Najłatwiej skorzystać z wrapera. Wraper to skrypt, który odwołuje się do właściwego kompilatora i ustawia za użytkownika odpowiednie opcje. Opcje związane są m.in. ze sposobem linkowania współdzielonych_bibliotek (shared objects) mpi-owych.
nazwa kompilatora | symbol kompilatora | nazwa wrapera |
---|---|---|
kompilator C | icc | mpicc |
kompilator C++ | icpc | mpicxx |
kompilator FORTRAN77 | ifort | mpif77 |
kompilator FORTRAN90 | ifort | mpif90 |
Czasami, kiedy nie można, z różnych powodów użyć wrapera, należy ustawić flagi ręcznie. Zalecane dla zaawansowwanych użytkowników, którzy nie boją się wyzwań.