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

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 2: Linia 2:
  
 
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]]).
 
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 aplikacji równoległych należy odnieść się, odpowiednio [[korzystanie z modułów |konfigurując środowisko systemowe]], do bibliotek wspomnianych wyżej protokołów.
+
Podczas kompilacji aplikacji równoległych należy odnieść się, odpowiednio [[korzystanie z modułów |konfigurując środowisko systemowe]], do bibliotek wspomnianych wyżej środowisk równoległych.
  
===Ustawienie środowiska pracy polega na:===
+
=== Przygotowanie środowiska pracy ===
* załadowaniu modułu dla wybranego kompilatora np.
+
Przygotowanie środowiska pracy polega na:
 +
* załadowaniu modułu dla wybranego kompilatora np.:
 
  module load intel/12.0  
 
  module load intel/12.0  
intel/12.0 load complete
+
* załadowaniu odpowiednich bibliotek MPI-owych np.:
* załadowaniu odpowiednich bibliotek MPI-owych np.
+
module load mvapich2/1.5.1p1
  module load mvapich2/1.5.1p1
+
{{uwaga2|Należy pamiętać, aby biblioteki MPI-owe zostały zbudowane wersją kompilatora, na którą wskazują zmienne środowiskowe}}
  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ładowanie innych bibliotek wymaganych przez kompilowaną aplikację, na przykład matematycznych:
 
* 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
 
  
===Proces kompilacji===
+
=== 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 [http://pl.wikipedia.org/wiki/Biblioteka_wsp%C3%B3%C5%82dzielona współdzielonych_bibliotek] (shared objects) mpi-owych.
+
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] MPI.
  
 
{| class="wikitable" style="text-align:right"
 
{| class="wikitable" style="text-align:right"
|+ Nazwy kompilatorów w pakiecie [http://software.intel.com/en-us/articles/intel-composer-xe/ Intel Composer XE 2011] i odpowiadających im wraperom z mvapich2-1.5.1b dostępnych na klastrze [[Nova | Supernova]].  
+
|+ Nazwy kompilatorów w pakiecie [http://software.intel.com/en-us/articles/intel-composer-xe/ Intel Composer XE 2011] i odpowiadających im wraperów z mvapich2-1.5.1b dostępnych na klastrze [[Supernova]].  
 
! nazwa kompilatora
 
! nazwa kompilatora
! symbol kompilatora
+
! polecenie kompilatora
 
! nazwa wrapera
 
! nazwa wrapera
 
|-
 
|-
Linia 42: Linia 40:
 
| mpif90
 
| mpif90
 
|}
 
|}
Czasami, kiedy nie można, z różnych powodów użyć wrapera, należy ustawić flagi ręcznie.
+
Czasami, gdy nie można, z różnych powodów użyć wrapera, należy ustawić flagi ręcznie. Jest to rozwiązanie zalecane dla zaawansowanych użytkowników, którzy mają pełną świadomość ustawianych opcji.
Zalecane dla zaawansowwanych użytkowników, którzy nie boją się wyzwań.
+
 
 +
[[Kategoria:Podręcznik użytkownika]]

Wersja z 07:24, 1 wrz 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 środowisk równoległych.

Przygotowanie środowiska pracy

Przygotowanie środowiska pracy polega na:

  • załadowaniu modułu dla wybranego kompilatora np.:
module load intel/12.0 
  • załadowaniu odpowiednich bibliotek MPI-owych np.:
module load mvapich2/1.5.1p1
  • załadowanie innych bibliotek wymaganych przez kompilowaną aplikację, na przykład matematycznych:
module load mkl/12.0.1.107

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

Nazwy kompilatorów w pakiecie Intel Composer XE 2011 i odpowiadających im wraperów z mvapich2-1.5.1b dostępnych na klastrze Supernova.
nazwa kompilatora polecenie kompilatora nazwa wrapera
kompilator C icc mpicc
kompilator C++ icpc mpicxx
kompilator FORTRAN77 ifort mpif77
kompilator FORTRAN90 ifort mpif90

Czasami, gdy nie można, z różnych powodów użyć wrapera, należy ustawić flagi ręcznie. Jest to rozwiązanie zalecane dla zaawansowanych użytkowników, którzy mają pełną świadomość ustawianych opcji.