„Intel Xeon Phi” változatai közötti eltérés
(→Használati módok) |
(→Használati módok) |
||
51. sor: | 51. sor: | ||
==Használati módok== | ==Használati módok== | ||
A koprocesszor használatai módjait két csoportba lehet sorolni. A '''natív''' és az '''offload''' használatot. <br/> | A koprocesszor használatai módjait két csoportba lehet sorolni. A '''natív''' és az '''offload''' használatot. <br/> | ||
− | Ezen használati módokról a lenti fejezetekben több részletet is megtudhat. <br /> | + | Ezen használati módokról a lenti fejezetekben több részletet is megtudhat. Az itt megfogalmazott "támogatás" csak a mi infrastruktúránkra érvényes! <br /> |
A bemutatott példák ''c++'' nyelven vannak, de természetesen ''c'' és ''fortran'' esetén is megtalálható az ekvivalens módszer. | 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=== | + | ===a) nem támogatott mód=== |
====közvetlen natív használat==== | ====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. <br /> | 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. <br /> | ||
65. sor: | 65. sor: | ||
# Alkalmazás futtatása <br/> <pre>./hello-MIC</pre> | # Alkalmazás futtatása <br/> <pre>./hello-MIC</pre> | ||
− | ===támogatott, de nem preferált használat=== | + | ===b) támogatott, de nem preferált használat=== |
====automatikus kódátvitel==== | ====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. <br/> | 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. <br/> | ||
81. sor: | 81. sor: | ||
|} | |} | ||
− | ===támogatott mód=== | + | ===c) támogatott mód=== |
====Offload==== | ====Offload==== | ||
A lap 2016. május 2., 14:48-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. Az itt megfogalmazott "támogatás" csak a mi infrastruktúránkra érvényes!
A bemutatott példák c++ nyelven vannak, de természetesen c és fortran esetén is megtalálható az ekvivalens módszer.
a) 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
b) 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)$
c) 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.