Módosítások

Budapest2 klaszter

2 089 bájt hozzáadva, 2017. március 15., 12:33
a
nincs szerkesztési összefoglaló
|-
| Típus
| HPSL250s
|-
| core / node
|-
| Intel Xeon Phi / node
| 2 × Intel(R) Xeon Phi(TM) MIC coprocessor SE10/7120 7120P
|-
| Compute node-ok
== Alkalmazások lefordítása ==
Mindenkitől azt kérjük, hogy először próbálja meg saját maga lefordítani az alkalmazását. Ha ez valamilyen oknál fogva mégsem sikerülne, akkor következő lépésként a magyarországi szuperszámítógép felhasználóktól érdemes kérdezni, mert nagy esély van rá hogy mások is belefutottak ugyanabba a problémába. Ezen a címen lehet őket elérni: <code>hpc-forum kukac listserv.niif.hu</code>. Feliratkozni [https://listserv.niif.hu/mailman/listinfo/hpc-forum itt lehet erre] a levelező listáralevelezőlistára. Az archívumban is érdemes utánanézni a kérdésnek. Az NIIF HPC support csak igen korlátozottan képes egyéni fordítási kérésekkel foglalkozni, de problémával felkeresheti a <code>hpc-support kukac niif.hu</code> címet. Az utóbbi esetben pár napos türelmüket mindenképp kérjük válaszunkig.
== Intel Xeon Phi használata ==
* [[Intel_Xeon_Phi |Részletes]] használati és alkalmazás optimalizációs leírás* [http://software.intel.com/en-us/mic-developer Itt] található az Intel hivatalos dokumentációja ezzel kapcsolatban* [https://software.intel.com/en-us/xeonphionlinecatalog Itt] található az Intel által hivatalosan támogatott alkalmazások listája
* [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Itt] tájékozódhatnak az Intel matematikai könyvtárainak a linkeléséről
#SBATCH --gres=mic:N
</pre>
Az <code>N</code> a az Intel Xeon Phi-k/node számát adja meg, ami 1 és 2 lehet maximum.
==== Job-ok indítása ====
</pre>
==== OpenMPI IntelMPI feladatok ====
MPI feladatok esetén meg kell adnunk az egy node-on elinduló MPI processzek számát is (<code>#SBATCH --ntasks-per-node=</code>). A leggyakoribb esetben ez az egy node-ban található CPU core-ok száma. A párhuzamos programot az <code>mpirun</code> paranccsal kell indítani.
<pre>
#SBATCH --ntasks-per-node=20
#SBATCH --time=12:00:00
 
mpirun PROGRAM
</pre>
OpenMPI FAQ: http://www.open-mpi.org/faq
==== OpenMP (OMP) feladatok ====
OpenMP párhuzamos alkalmazásokhoz maximum 1 node-ot lehet lefoglalni. Az OMP szálák számát az <code>OMP_NUM_THREADS</code> környezeti változóval kell megadni. A változót vagy az alkamazás elé kell írni (ld. példa), vagy exportálni kell az indító parancs előtt:
<code>
export OMP_NUM_THREADS=10
</code>
=== AlkalmazásA következő példában egy taskhoz 10 CPU core-t rendeltunk, a 10 CPU core-specifikus beállítások ===nak egy node-on kell lennie. A CPU core-ok számát a <code>SLURM_CPUS_PER_TASK</code> változó tartalmazza, és ez állítja be az OMP szálak számát is.==== Gromacs ====A Gromacs programot Alice felhasználó a következő mpirun paraméterrel kell indítani:foobar számla terhére, maximum 6 órára indít el egy 10 szálas OMP alkalmazást.
<pre>
mpirun #!/bin/bash#SBATCH -A foobar#SBATCH --job-name=omp#SBATCH --time=06:00:00#SBATCH -report-pid ntasks=1#SBATCH --cpus-per-task=10OMP_NUM_THREADS=${TMPDIR}SLURM_CPUS_PER_TASK ./mpirun.pid ..a.out
</pre>
 
==== Hibrid MPI-OMP feladatok ====
Hibrid MPI-OMP módról akkor beszélünk, ha a párhuzamos alkalmazás MPI-t és OMP-t is használ. Érdemes tudni, hogy az Intel MKL-el linkelt programok MKL hívásai OpenMP képesek. Általában a következő elosztás javasolt: az MPI processzek száma 1-től az egy node-ban található CPU foglalatok száma, az OMP szálak ennek megfelelően az egy node-ban található összes CPU core szám vagy annak fele, negyede (értelem szerűen). A jobszkipthez a fenti két mód paramétereit kombinálni kell.
 
A következő példában 2 node-ot, és node-onként 1-1 taskot indítunk taskonként 10 szállal. Alice felhasználó a foobar számla terhére, 8 órára, 2 node-ra küldött be egy hibrid jobot. Egy node-on egyszerre csak 1 db MPI processz fut ami node-onként 10 OMP szálat használ. A 2 gépen összesen 2 MPI proceszz és 2 x 10 OMP szál fut.
<pre>
#!/bin/bash
#SBATCH -A foobar
#SBATCH --job-name=mpiomp
#SBATCH --time=08:00:00
#SBATCH -N 2
#SBATCH --ntasks=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=10
#SBATCH -o slurm.out
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
mpirun ./a.out
</pre>
 
 
[[Kategória: HPC]]

Navigációs menü