Kompilacja aplikacji równoległych: Różnice pomiędzy wersjami
(Nie pokazano 4 wersji utworzonych przez jednego użytkownika) | |||
Linia 1: | Linia 1: | ||
− | <small>< [[Podręcznik użytkownika KDM]] < [[Kompilacja aplikacji równoległych]]</small> | + | <small>< [[Podręcznik użytkownika KDM]] < [[Kompilacja aplikacji na klastrze]] < [[Kompilacja aplikacji równoległych]]</small> |
− | Znakomita większość oprogramowania na klastrze [[ | + | Znakomita większość oprogramowania na klastrze [[Bem]] jest zainstalowana w wersji równoległej tak, aby korzystała z jednego ze sposobów wymiany informacji między procesami (m.in. [[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 środowisk równoległych. |
− | 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. | ||
=== Przygotowanie środowiska pracy === | === Przygotowanie środowiska pracy === | ||
Przygotowanie środowiska pracy polega na: | Przygotowanie środowiska pracy polega na: | ||
− | * załadowaniu modułu dla wybranego kompilatora np.: | + | * załadowaniu [[korzystanie z modułów|modułu]] dla wybranego kompilatora np.: |
− | module load intel/ | + | module load intel/15.0 |
* załadowaniu odpowiednich bibliotek MPI-owych np.: | * załadowaniu odpowiednich bibliotek MPI-owych np.: | ||
− | module load | + | module load openmpi/1.10.1-intel15.0 |
− | {{ | + | {{uwaga3|Należy pamiętać, aby biblioteki MPI-owe zostały zbudowane wersją kompilatora, na którą wskazują 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/ | + | module load mkl/15.0 |
=== Proces kompilacji === | === Proces kompilacji === | ||
Linia 19: | Linia 18: | ||
{| 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 wraperów z | + | |+ 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 openmpi dostępnych na klastrze [[Bem]]. |
! nazwa kompilatora | ! nazwa kompilatora | ||
! polecenie kompilatora | ! polecenie kompilatora | ||
Linia 30: | Linia 29: | ||
| kompilator C++ | | kompilator C++ | ||
| icpc | | icpc | ||
− | | | + | | mpic++ |
|- | |- | ||
| kompilator FORTRAN77 | | kompilator FORTRAN77 | ||
Linia 42: | Linia 41: | ||
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. | 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. | ||
+ | '''Zobacz też:''' | ||
+ | * [[Korzystanie z modułów]] | ||
[[Kategoria:Podręcznik użytkownika]] | [[Kategoria:Podręcznik użytkownika]] |
Aktualna wersja na dzień 11:38, 22 lut 2016
< Podręcznik użytkownika KDM < Kompilacja aplikacji na klastrze < Kompilacja aplikacji równoległych
Znakomita większość oprogramowania na klastrze Bem jest zainstalowana w wersji równoległej tak, aby korzystała z jednego ze sposobów wymiany informacji między procesami (m.in. 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/15.0
- załadowaniu odpowiednich bibliotek MPI-owych np.:
module load openmpi/1.10.1-intel15.0
! Należy pamiętać, aby biblioteki MPI-owe zostały zbudowane wersją kompilatora, na którą wskazują zmienne środowiskowe
- załadowanie innych bibliotek wymaganych przez kompilowaną aplikację, na przykład matematycznych:
module load mkl/15.0
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.
nazwa kompilatora | polecenie kompilatora | nazwa wrapera |
---|---|---|
kompilator C | icc | mpicc |
kompilator C++ | icpc | mpic++ |
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.
Zobacz też: