„Intel Xeon Phi” változatai közötti eltérés
(→Hardver bemutatása) |
(→Használati módok) |
||
50. sor: | 50. 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/> | ||
+ | Ezen használati módokról a lenti fejezetekben több részletet is megtudhat. | ||
+ | ===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. <br /> | ||
+ | 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. <br/> | ||
+ | Workflow a következő lenne: | ||
+ | # Alkalmazás megírása. például ''hello.cc'' | ||
+ | # Alkalmazás fordítása <br/> ''icpc -o hello-MIC -mmic hello.cc'' | ||
+ | # Másolás a MIC kártyára <br/> ''scp hello-MIC mic0:'' | ||
+ | # belépés a kártyára <br/> ''ssh mic0'' | ||
+ | # Alkalmazás futtatása <br/> ''./hello-MIC'' | ||
− | |||
− | |||
− | |||
===támogatott, de nem preferált használat=== | ===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/> | |
+ | 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 <br/> ''icpc -o hello-MIC -mmic hello.cc'' | ||
+ | # A tool futásához szükséges library-k megadása <br> ''export SINK_LD_LIBRARY_PATH=/opt/intel/composerxe/compiler/lib/mic'' | ||
+ | # Alkalmazás futtatása <br/> ''micnativeloadex hello-MIC'' | ||
+ | |||
BUDAPEST2[cn10] phi (0)$ export SINK_LD_LIBRARY_PATH=/opt/intel/composerxe/compiler/lib/mic | BUDAPEST2[cn10] phi (0)$ export SINK_LD_LIBRARY_PATH=/opt/intel/composerxe/compiler/lib/mic | ||
BUDAPEST2[cn10] phi (0)$ micnativeloadex hello_phi | BUDAPEST2[cn10] phi (0)$ micnativeloadex hello_phi | ||
Hello world! I have 244 logical cores. | Hello world! I have 244 logical cores. | ||
BUDAPEST2[cn10] phi (0)$ | BUDAPEST2[cn10] phi (0)$ | ||
− | === | + | |
− | ==== | + | |
+ | ===támogatott mód=== | ||
+ | ====Offload==== | ||
+ | |||
+ | ====Offload + OpenMP==== | ||
==Alkalmazások optimalizálása a kártyára== | ==Alkalmazások optimalizálása a kártyára== |
A lap 2016. május 2., 13:51-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.
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_phi 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.