„Intel Xeon Phi” változatai közötti eltérés
(→Használati módok) |
(→nem támogatott mód) |
||
60. sor: | 60. sor: | ||
Workflow a következő lenne: | Workflow a következő lenne: | ||
# Alkalmazás megírása. például [[Média:hello.cc|''hello.cc'']] | # Alkalmazás megírása. például [[Média:hello.cc|''hello.cc'']] | ||
− | # Alkalmazás fordítása <br/> | + | # Alkalmazás fordítása <br/> <pre>icpc -o hello-MIC -mmic hello.cc</pre> |
− | # Másolás a MIC kártyára <br/> | + | # Másolás a MIC kártyára <br/> <pre>scp hello-MIC mic0:</pre> |
− | # belépés a kártyára <br/> | + | # belépés a kártyára <br/> <pre>ssh mic0</pre> |
− | # Alkalmazás futtatása <br/> | + | # Alkalmazás futtatása <br/> <pre>./hello-MIC</pre> |
===támogatott, de nem preferált használat=== | ===támogatott, de nem preferált használat=== |
A lap 2016. május 2., 14:44-kori változata
Az oldalon található információk segítséget nyújtanak a HPC felhasználóinknak, hogy alkalmazásaikat miként portolhatják valamint optimalizálhatják a hatékonyabb futást szem előtt tartva Intel Xeon Phi koprocesszor kártyákon.
Tartalomjegyzék
[elrejtés]Hardver bemutatása
Intel® Xeon Phi™ Coprocessor 7120P
CPU | threads/Core | max threads | CPU Freq | Memória | L1 cache | L2 cache | Interfész | Ptot | Számítási kapacitás |
---|---|---|---|---|---|---|---|---|---|
61 | 4 Hardver | 244 | 1238 GHz | 16GB GDDR5 | 32KB/core | 512KB/core | PCIe | 300W | 1,1 PFlop/s |
OpenMP-nél csak 240 | ~100 cycles
~174 GB/s |
~3 cycles | ~10 cycles | ~7 GB/s
~1 microsecond |
Az Intel® 1. generációs Xeon Phi™ koprocesszorában található 61 processzor ugyanazt a 16GB memóriát éri el, de semmilyen módon se fér hozzá közvetlenül a hoszt gép fizikai memóriájához.
Budapest2 és Debrecen3-Phi gépeinkben számítási nodonként 2-2 Phi™ koprocesszor található.
A kártyákon általános célú Linux kernel fut melyre a belépés limitáltan csak a rendszergazdák számára lehetséges SSH-n keresztül a hoszt gépről. Természetesen a kártyára belépve olyan érzésünk lehet, mintha egy sok processzoros gépen dolgoznánk, ami rendelkezik rengeteg memóriával. Ez így is van, de a hatékonyabb kihasználás érdekében az SSH-n keresztüli elérés nem lehetséges, csak a Slurm segítségével valamint a programozási nyelvek által támogatott csatornákon keresztül. Ennek részletezése lentebb megtalálható.
Használati módok
A koprocesszor használatai módjait két csoportba lehet sorolni. A natív és az offload használatot.
Ezen használati módokról a lenti fejezetekben több részletet is megtudhat.
A bemutatott példák c++ nyelven vannak, de természetesen c és fortran esetén is megtalálható az ekvivalens módszer.
nem támogatott mód
közvetlen natív használat
A natív mód arra szolgál, hogy a MIC kártyára lefordított alkalmazásunkat felmásoljuk a kártyára, majd belépünk SSH-n a kártyára és azon futtatjuk a bináris kódunkat.
Ez a legegyszerűbb használati mód, ugyanis nincs más dolgunk, csak a -mmic kapcsolót használni a fordításnál és a fordító egy máris a MIC architektúrára kész bináris készít nekünk.
Workflow a következő lenne:
- Alkalmazás megírása. például hello.cc
- Alkalmazás fordítása
icpc -o hello-MIC -mmic hello.cc
- Másolás a MIC kártyára
scp hello-MIC mic0:
- belépés a kártyára
ssh mic0
- Alkalmazás futtatása
./hello-MIC
támogatott, de nem preferált használat
automatikus kódátvitel
Ebben az esetben nem kell átmásolnunk a bináris alkalmazásunkat a kártyára sőt még csak be se kell lépnünk, mert ezt a két lépést egy beépített tool végzi el.
A tool eléréséhez szükséges parancs neve: micnativeloadex
Ebben az esetben a workflow a következőképpen módosul:
- Alkalmazás megírása. például hello.cc
- Alkalmazás fordítása
icpc -o hello-MIC -mmic hello.cc - A tool futásához szükséges library-k megadása
export SINK_LD_LIBRARY_PATH=/opt/intel/composerxe/compiler/lib/mic - Alkalmazás futtatása
micnativeloadex hello-MIC
BUDAPEST2[cn10] phi (0)$ export SINK_LD_LIBRARY_PATH=/opt/intel/composerxe/compiler/lib/mic
BUDAPEST2[cn10] phi (0)$ micnativeloadex hello-MIC
Hello world! I have 244 logical cores.
BUDAPEST2[cn10] phi (0)$
támogatott mód
Offload
Offload + OpenMP
Alkalmazások optimalizálása a kártyára
Ebben a fejezetben optimalizálási lehetőségeket mutatunk be, melyek segítségül szolgálhatnak az egyes alkalmazások hatékonyabb futása érdekében ezzel jobban kihasználni a rendelkezésre álló erőforrások adta számítási kapacitás.