„Intel Xeon Phi” változatai közötti eltérés

Innen: KIFÜ Wiki
(Használati módok)
(Hardver bemutatása)
8. sor: 8. sor:
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
|-
+
|- align="center"
 
! CPU
 
! CPU
 
! threads/Core
 
! threads/Core
19. sor: 19. sor:
 
! Ptot
 
! Ptot
 
! Számítási kapacitás
 
! Számítási kapacitás
|-
+
|- align="center"
 
| 61
 
| 61
 
| 4 Hardver
 
| 4 Hardver
30. sor: 30. sor:
 
| 300W
 
| 300W
 
| 1,1 PFlop/s
 
| 1,1 PFlop/s
|-
+
|- align="center"
 
|
 
|
 
|
 
|

A lap 2016. május 2., 14:01-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.

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:

  1. Alkalmazás megírása. például hello.cc
  2. Alkalmazás fordítása
    icpc -o hello-MIC -mmic hello.cc
  3. Másolás a MIC kártyára
    scp hello-MIC mic0:
  4. belépés a kártyára
    ssh mic0
  5. 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:

  1. Alkalmazás megírása. például hello.cc
  2. Alkalmazás fordítása
    icpc -o hello-MIC -mmic hello.cc
  3. A tool futásához szükséges library-k megadása
    export SINK_LD_LIBRARY_PATH=/opt/intel/composerxe/compiler/lib/mic
  4. 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.

Hosszredukció

Vektorizáció

SIMD

AoS -> SoA

Hatékony hossz választás

"Héj ciklusok" kiköszöbölése

Regularizáció

Párhuzamosítás

Párhuzamos szálak ütemezése

Ciklus kifejtés

Automatikus ciklusösszevonás