8
Forschungsgruppe Parallele und Verteilte Systeme Prof. Dr. Sergei Gorlatch Institut für Mathematik und Informatik http://pvs.unimuenster.de Design und Implementierung einer HighLevel API zur Programmierung heterogener Clustersysteme

Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Embed Size (px)

Citation preview

Page 1: Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Forschungsgruppe Parallele und Verteilte SystemeProf. Dr. Sergei GorlatchInstitut für Mathematik und Informatikhttp://pvs.uni‐muenster.de

Design und Implementierung einer High‐Level APIzur Programmierung heterogener Clustersysteme

Page 2: Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Michael Haidl

2

23.01.2014

Cluster

• Verbund einzelner Rechnerknoten (Nodes) 

• Kombination der Ressourcen aller Nodes (Speicher, Performance)

Page 3: Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Michael Haidl

3

23.01.2014

Früher war alles besser…

• Programmiermodel: MPI (C/C++ und Fortran)

• Single Programm Multiple Data (SPMD)

• Single‐Core CPUs 

• 1 – 4 CPUs pro Cluster‐Node

• ccNUMA Architektur

Node

CPU CPU CPU CPU

P1 P2 P3 P4

Intel Xeon 2001

Page 4: Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Michael Haidl

4

23.01.2014

Die Multi‐Core Revolution

• Programmiermodele: MPI, OpenMP, Pthreads

• Multi‐Threading

• Multi‐Core CPUs 

• 2 – 8 Cores pro CPU

• ‐> 2 – 32 Cores pro Cluster Node

AMD Opteron 2007

Node

CPU CPU CPU CPU

P1 P2 P3 P4

Page 5: Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Michael Haidl

5

23.01.2014

GPGPUs

• Programmiermodele: MPI, OpenMP, Pthreads, CUDA, OpenCL, OpenACC

• SIMD (Single Instruction Multiple Data)

• Grafikprozessoren für datenparallele Berechnungen

• Leichte Recheneinheiten 

• Z.z. 2880 Cores (Nvidia Tesla K40)

Heterogen Node

CPU CPU CPU CPU

P1 P2 P3 P4

GPU GPUNvidia GK110 2013

Page 6: Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Michael Haidl

6

23.01.2014

Intel Xeon Phi (MIC)

• Programmiermodele: MPI, OpenMP, Pthreads, CUDA, OpenCL, OpenACC, Intel LEO, Intel Cilk Plus

• Erinnere dich an Früher…

• > 58 Intel Pentium Prozessoren auf einem Chip

• 512 bit Vectorregister

Heterogen Node

CPU CPU CPU CPU

P1 P2 P3 P4

GPU MIC

Intel Xeon Phi 2013

Wer soll das programmieren? Wer soll das programmieren und höchste Performance erreichen?

Page 7: Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Michael Haidl

7

23.01.2014

High‐Level API

• Abstraktion verschiedener Programmiermodelle 

• Reduktion des Entwicklungsaufwands für Applikationen

• Entwicklung einer einfachen Schnittstelle zu den einzelnen Komponenten

• Mögliche Integration bereits bestehender Ansätze der Arbeitsgruppe

• Einsatz von state‐of‐the‐art Hardware (Nvidia Tesla K20, Intel Xeon Phi)

• Ziel: Entwicklung einer high‐level API zur Realisierung einer konkreten naturwissenschaftlichen Anwendung

Page 8: Design und Implementierung einer High Level API zur ... · PDF fileMichael Haidl 7 23.01.2014 High‐Level API • Abstraktion verschiedener Programmiermodelle • Reduktion des Entwicklungsaufwands

Michael Haidl

8

23.01.2014

Teilnehmer

• Projekt ausgelegt auf Master‐Studenten aber auch Bachelor‐Studenten finden Platz• Ma. ‐> 20 Credit Points• Ba. ‐> 10 Credit Points 

• Platz für maximal 9 Studenten

• Vorkenntnisse: • Perfekt wäre: Erfahrung in CUDA / OpenCL Programmierung • Optimal wäre: C++ Programmierung, Besuchte Vorlesung: PS, MGPP• Erwartet wird: Teamfähigkeit, Motivation, Interesse für parallele Programmierung

• Vorbesprechung: 30.01.2014 11:00 – Lichthof 6. Stock