„NIIF szuperszámítógépek használata” változatai közötti eltérés

Innen: KIFÜ Wiki
a (SSH elérés beállítása)
40. sor: 40. sor:
 
<tt>$HOME/shf3/key/ssh</tt> könyvtár alatt találjuk: privát kulcs: <tt><MID>.sec</tt>, publikus kulcs: <tt><MID>.pub</tt>. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a <tt>$HOME/shf3/mid/ssh</tt> könyvtár alatt vannak a <tt><MID></tt> nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.
 
<tt>$HOME/shf3/key/ssh</tt> könyvtár alatt találjuk: privát kulcs: <tt><MID>.sec</tt>, publikus kulcs: <tt><MID>.pub</tt>. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a <tt>$HOME/shf3/mid/ssh</tt> könyvtár alatt vannak a <tt><MID></tt> nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.
  
A budapesti gép példáján bemutatom hogyan kell használni a keretrendszert a saját gépünkön.
+
== SGI UV Pécs ==
 +
A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.
 +
 
 +
Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani.
 +
 
 +
=== MPI SGE job szkript példa ===
 +
<source lang="bash">
 +
    #!/bin/bash
 +
    ### SGE
 +
    #$ -N MPITEST
 +
    # 12 órás walltime limit
 +
    #$ -l h_rt=12:00:00
 +
    # 384 szál lefoglalása az
 +
    # mpi párhuzamos környezetben
 +
    #$ -pe mpi 384
 +
    # az uv.q sor használatával
 +
    #$ -q uv.q
 +
    # a standard kimenet ide íródik
 +
    #$ -o StdOut
 +
    # a hibakimenet ide íródik
 +
    #$ -e StdErr
 +
    # a jelenlegi shell környezet exportálódik
 +
    #$ -V
 +
    ### NUMA
 +
    # az StdOut-ba írja a numa node információt
 +
    numactl --show
 +
    ### OMP
 +
    # OMP beállítások
 +
 
 +
    export OMP_NUM_THREADS=1
 +
    ### MPI
 +
    # MPI beállítások
 +
 
 +
    export MPI_MEMMAP_OFF=1
 +
    # saját szkript vagy az mpirun közvetlen meghívás
 +
    # 384 MPI szál fog elindulni
 +
    mpirun 384 dplace -s 1 <APP>
 +
</source>
 +
Az `<APP>` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.
 +
 
 +
 
 +
=== OMP SGE job szkript példa ===
 +
<source lang="bash">
 +
    #!/bin/bash
 +
    ### SGE
 +
    #$ -N OMPTEST
 +
    # 12 órás walltime limit
 +
    #$ -l h_rt=12:00:00
 +
    # 192 szál lefoglalása az
 +
    # openmp párhuzamos környezetben
 +
    #$ -pe openmp 192
 +
    # az uv.q sor használatával
 +
    #$ -q uv.q
 +
    # a standard kimenet ide íródik
 +
    #$ -o StdOut
 +
    # a hibakimenet ide íródik
 +
    #$ -e StdErr
 +
    # a jelenlegi shell környezet exportálódik
 +
    #$ -V
 +
    ### NUMA
 +
    # az StdOut-ba írja a numa node információt
 +
    numactl --show
 +
    ### OMP
 +
    # OMP beállítások
 +
    export OMP_NUM_THREADS=192
 +
    omplace <APP>
 +
</source>
 +
Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.
  
 
[[Category: HPC]]
 
[[Category: HPC]]
 
[[Category: HOWTO]]
 
[[Category: HOWTO]]

A lap 2013. április 24., 15:02-kori változata

Hozzáférés a szuperszámítógépekhez

A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni.

Hozzáférés a Shell Framework használatával

A Shell Framework egy összetett Bash alapú keretrendszer, ami kifejezetten a HPC felhasználók igényei alapján lett kifejlesztve. Jelentősen egyszerűsíti az SSH-val és a jobok kezelésével kapcsolatos teendőket. Támogatott operációs rendszerek: OS X, Linux.

Telepítés és frissítés

A keretrendszer a github.com-ról telepíthető és frissíthető. A telepítéséhez a következő parancsokat kell futtatni a terminálban:

    cd $HOME
    git clone git://github.com/hornos/shf3.git
    echo 'source $HOME/shf3/bin/shfrc' >> $HOME/.profile
    source .profile

A frissítéseket a következő paranccsal tudjuk letölteni:

    shfmgr -u

SSH elérés beállítása

Az SSH modul független a $HOME/.ssh könyvtárban található konfigurációtól. Minden SSH login/gép pároshoz tartozik egy MID fájl. Ebben a fájlban vannak tárolva az SSH paraméterei kulcs=érték formában. A MID fájl Bash formátumú szkript fájl, amelyet más programokban a source paranccsal tudunk beolvasni. A $HOME/shf3 könyvtár tartalmazza a teljes keretrendszert és a beállításokat is, ezért ezt a könyvtárat tehetjük egy titkosított USB meghajtóra is és symlinkelhetjük a home könyvtárunkba.

Új SSH MID-et a következő paranccsal tudunk létrehozni:

    sshmgr -n <MID>

A következő beállításokat kell beleírni a MID fájlba:

    # a távoli gép IP címe vagy DNS neve
    mid_ssh_fqdn="skynet.cyberdy.ne"
    # távoli felhasználói név
    mid_ssh_user="$USER"
    # SSH port
    mid_ssh_port=22
    # explicit ellenőrzés
    mid_ssh_port_check="ping"

Amennyiben nincs még SSH kulcsunk a szkript létrehozza ezt. Az SSH kulcsokat a $HOME/shf3/key/ssh könyvtár alatt találjuk: privát kulcs: <MID>.sec, publikus kulcs: <MID>.pub. A publikus részt kell eljuttatni a távoli gépre ill. elküldeni a regisztráció során. Ha vannak már kulcsaink, akkor ebbe a könyvtárba kell másolni az előbb említett nevekkel. Az SSH MID-ek a $HOME/shf3/mid/ssh könyvtár alatt vannak a <MID> nevű fájlokban. Minden SSH-val kapcsolatos parancs ezekt a fájlokat olvassa és használja a kulcsokat, ha elérhetők.

SGI UV Pécs

A pécsi gépen csak SMP vagy MPI programok futtatása engedélyezett. Minimálisan 12 szálat lehet lefoglalni. A foglalás alapegysége a numa node, ami 2x6 processzort és 60GB memóriát tartalmaz. Érdemes 12 többszörösével számolni a lefoglalalndó szálakat, pl.: 12, 24, 48, 96... Ha 2 hatványaira van szükségünk, akkor az SGE foglalást a legközelebbi 12-es szálszámmal kérjük, és az MPI-t vagy az OMP paraméterezzük 2^n szerint.

Az alapértelmezett MPI könyvtár az SGI MPT. Ez a könyvtár biztosítja a legjobb teljesítményt az UV gépen. A felhasználói programokat ehhez a könyvtárhoz kell fordítani.

MPI SGE job szkript példa

    #!/bin/bash
    ### SGE
    #$ -N MPITEST
    # 12 órás walltime limit 
    #$ -l h_rt=12:00:00
    # 384 szál lefoglalása az
    # mpi párhuzamos környezetben
    #$ -pe mpi 384
    # az uv.q sor használatával
    #$ -q uv.q
    # a standard kimenet ide íródik
    #$ -o StdOut
    # a hibakimenet ide íródik
    #$ -e StdErr
    # a jelenlegi shell környezet exportálódik
    #$ -V
    ### NUMA
    # az StdOut-ba írja a numa node információt
    numactl --show
    ### OMP
    # OMP beállítások

    export OMP_NUM_THREADS=1
    ### MPI
    # MPI beállítások

    export MPI_MEMMAP_OFF=1
    # saját szkript vagy az mpirun közvetlen meghívás
    # 384 MPI szál fog elindulni
    mpirun 384 dplace -s 1 <APP>

Az `<APP>` helyére kell írni a futtatandó programot és paramétereit. A `dplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.


OMP SGE job szkript példa

    #!/bin/bash
    ### SGE
    #$ -N OMPTEST
    # 12 órás walltime limit 
    #$ -l h_rt=12:00:00
    # 192 szál lefoglalása az
    # openmp párhuzamos környezetben
    #$ -pe openmp 192
    # az uv.q sor használatával
    #$ -q uv.q
    # a standard kimenet ide íródik
    #$ -o StdOut
    # a hibakimenet ide íródik
    #$ -e StdErr
    # a jelenlegi shell környezet exportálódik
    #$ -V
    ### NUMA
    # az StdOut-ba írja a numa node információt
    numactl --show
    ### OMP
    # OMP beállítások
    export OMP_NUM_THREADS=192
    omplace <APP>

Az `omplace` egy SGI előtétprogram, ami az MPI szálak ideális CPU elosztását végzi, megadása javasolt, mert általában javítja a teljesítményt.