Kompilacja aplikacji równoległych

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania

< 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.

Nazwy kompilatorów w pakiecie Intel Composer XE 2011 i odpowiadających im wraperom z mvapich2-1.5.1b dostępnych na klastrze Supernova.
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ń.