goback - in.tum.de · grundlagen ax = b positiv-beispiel - p. 2/18 l grundlagen f distributed...
TRANSCRIPT
![Page 1: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/1.jpg)
GoBack
![Page 2: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/2.jpg)
- p. 1/18
�� ��� � ��� �� � �� � � ��� � �� � � � � � �
� � � � � � ���� �� �� � �� � � � � ��� �� � � � � � ��� � � �
Tobias GradlTechnische Universität München
Lehrstuhl für Informatik mit Schwerpunkt Wissenschaftliches Rechnen
![Page 3: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/3.jpg)
Grundlagen
Ax = b
Positiv-Beispiel
- p. 2/18
� � � � �
l GrundlagenF Distributed memory und MPIF Shared memory und OpenMPF SMP-Cluster und Hybride Programmierung
l Vergleich der Paradigmen anhand von Ax = b
l Positiv-Beispiel: Vacancy-Tracking
![Page 4: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/4.jpg)
Grundlagen
Ax = b
Positiv-Beispiel
- p. 2/18
� � � � �
l GrundlagenF Distributed memory und MPIF Shared memory und OpenMPF SMP-Cluster und Hybride Programmierung
l Vergleich der Paradigmen anhand von Ax = b
l Positiv-Beispiel: Vacancy-Tracking
![Page 5: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/5.jpg)
Grundlagen
Ax = b
Positiv-Beispiel
- p. 2/18
� � � � �
l GrundlagenF Distributed memory und MPIF Shared memory und OpenMPF SMP-Cluster und Hybride Programmierung
l Vergleich der Paradigmen anhand von Ax = b
l Positiv-Beispiel: Vacancy-Tracking
![Page 6: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/6.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 3/18
��� �� � � � � � � �� � � � ��
CPU
RAM
CPU
RAM
Netzwerk
MPI: FunktionsbibliothekMPI_Send(), MPI_Recv(),MPI_Barrier(), etc.
Umsetzung in Ax = b:x-Werte senden u. empfangenfor (i = s; i ≤ e; i++){
Zeile Ai multiplizieren}
![Page 7: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/7.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 3/18
��� �� � � � � � � �� � � � ��
CPU
RAM
CPU
RAM
Netzwerk
MPI: FunktionsbibliothekMPI_Send(), MPI_Recv(),MPI_Barrier(), etc.
Umsetzung in Ax = b:x-Werte senden u. empfangenfor (i = s; i ≤ e; i++){
Zeile Ai multiplizieren}
![Page 8: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/8.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 3/18
��� �� � � � � � � �� � � � ��
CPU
RAM
CPU
RAM
Netzwerk
MPI: FunktionsbibliothekMPI_Send(), MPI_Recv(),MPI_Barrier(), etc.
Umsetzung in Ax = b:x-Werte senden u. empfangenfor (i = s; i ≤ e; i++){
Zeile Ai multiplizieren}
![Page 9: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/9.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 4/18
� � � � � � � � �� � � � � � �
CPU CPU
RAM
Bus
OpenMP: Compiler-Erweiterung#pragma omp ...
Umsetzung in Ax = b:#pragma omp parallel forfor (i = 0; i < n; i++){
Zeile Ai multiplizieren}
![Page 10: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/10.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 4/18
� � � � � � � � �� � � � � � �
CPU CPU
RAM
Bus
OpenMP: Compiler-Erweiterung#pragma omp ...
Umsetzung in Ax = b:#pragma omp parallel forfor (i = 0; i < n; i++){
Zeile Ai multiplizieren}
![Page 11: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/11.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 4/18
� � � � � � � � �� � � � � � �
CPU CPU
RAM
Bus
OpenMP: Compiler-Erweiterung#pragma omp ...
Umsetzung in Ax = b:#pragma omp parallel forfor (i = 0; i < n; i++){
Zeile Ai multiplizieren}
![Page 12: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/12.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 5/18
� � � � ��� � � � � � � � �� � � � � � � � � ��� �� � �CPU CPU
Bus
RAM
Netzwerk
CPU CPU
RAM
Bus
Kno
ten
Kno
ten
Kombination von MPI und OpenMP
Umsetzung in Ax = b:x-Werte senden u. empfangen#pragma omp parallel forfor (i = s1; i < s2; i++){
Zeile Ai multiplizieren}
![Page 13: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/13.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 5/18
� � � � ��� � � � � � � � �� � � � � � � � � ��� �� � �CPU CPU
Bus
RAM
Netzwerk
CPU CPU
RAM
Bus
Kno
ten
Kno
ten
Kombination von MPI und OpenMP
Umsetzung in Ax = b:x-Werte senden u. empfangen#pragma omp parallel forfor (i = s1; i < s2; i++){
Zeile Ai multiplizieren}
![Page 14: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/14.jpg)
Grundlagenv Distributed
memory und MPIv Shared memory
und OpenMPv SMP-Cluster und
HybrideProgrammierung
Ax = b
Positiv-Beispiel
- p. 5/18
� � � � ��� � � � � � � � �� � � � � � � � � ��� �� � �CPU CPU
Bus
RAM
Netzwerk
CPU CPU
RAM
Bus
Kno
ten
Kno
ten
Kombination von MPI und OpenMP
Umsetzung in Ax = b:x-Werte senden u. empfangen#pragma omp parallel forfor (i = s1; i < s2; i++){
Zeile Ai multiplizieren}
![Page 15: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/15.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 6/18
Ax = b
� � � ��� � � �� � � � �� �� � �� �
Größere Partitionen, keine MPI-Nachrichten innerhalb einesKnotens⇒ weniger Zeitbedarf für Kommunikation.
Gleicher Rechenaufwand, weniger Kommunikationsaufwand⇒ Hybrid ist schneller
![Page 16: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/16.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 6/18
Ax = b
� � � ��� � � �� � � � �� �� � �� �
Größere Partitionen, keine MPI-Nachrichten innerhalb einesKnotens⇒ weniger Zeitbedarf für Kommunikation.
Gleicher Rechenaufwand, weniger Kommunikationsaufwand⇒ Hybrid ist schneller
![Page 17: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/17.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 6/18
Ax = b
� � � ��� � � �� � � � �� �� � �� �
Größere Partitionen, keine MPI-Nachrichten innerhalb einesKnotens⇒ weniger Zeitbedarf für Kommunikation.
Gleicher Rechenaufwand, weniger Kommunikationsaufwand⇒ Hybrid ist schneller
![Page 18: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/18.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 7/18
! �� �#" � � $ ��� � �� �� n � � �% � �� � � �
nn = 2, np = 16
10−4
10−3
10−2
10−1
100
101 102 103 104 105 106 107 108
t
nr
MPIhybrid
![Page 19: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/19.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 8/18
! �� �#" � � $ ��� � �� �� ncpu
� � �% � �� � � �
nr = 216.000
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
48 40 32 24 16 8 1
t
ncpu
MPIhybrid
![Page 20: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/20.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 9/18
�� � � ��� �� � � �� � &(' )
nn = 2, np = 16
10−6
10−5
10−4
10−3
10−2
10−1
100
101 102 103 104 105 106 107 108
t
nr
comp+commcopy sbuf
call MPIcomp
![Page 21: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/21.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 10/18
� � � � �� � � � � �� � � � � �10−6
10−5
10−4
10−3
10−2
10−1
100
101 102 103 104 105 106 107 108
t
nr
comp (MPI)comp (hyb)
![Page 22: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/22.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 11/18
� � � � �� � � � � �� � � � � �10−5
10−4
10−3
10−2
10−1
101 102 103 104 105 106 107 108
t
nr
Cache−Größe
comp(hyb) − comp(MPI)OpenMP−Overhead
![Page 23: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/23.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 12/18
� � � � �� � ��� � � �� � � � � � * �
10−6
10−5
10−4
10−3
10−2
101 102 103 104 105 106 107 108
t
nr
copy sbuf (MPI)copy sbuf (hyb)
![Page 24: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/24.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 13/18
� � � � �� �� � � � �� �10−4
10−3
10−2
101 102 103 104 105 106 107 108
t
nr
call MPI (MPI)call MPI (hyb)
![Page 25: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/25.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 14/18
� � � � �� �� � � � �� � 0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t(np)
/ t(n
p,m
ax)
np / np,max
SeaborgInfinicluster
![Page 26: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/26.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 15/18
�� � � ��� �� � � �� � &(+ )
nr = 216.000
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
48 40 32 24 16 8 1
comp+commcopy sbuf
call MPIcomp
![Page 27: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/27.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 16/18
� � � � �� � � � � �� � � � � � 0.06
0.07
0.08
0.09
0.1
0.11
0.12
0.13
0.14
0.15
48 40 32 24 16 8 1
t(com
p) ⋅
n cpu
ncpu
comp (MPI)comp (hyb)
![Page 28: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/28.jpg)
Grundlagen
Ax = b
vAx = btheoretischschneller in hybrid
v Laufzeit-Beispielev MPI-Timings im
Detail (1)v Vergleich:
Multiplikationv Vergleich:
Kopieren inSendepuffer
v Vergleich:MPI-Aufruf
v MPI-Timings imDetail (2)
v Vergleich:Multiplikation
v Vergleich:MPI-Aufruf
Positiv-Beispiel
- p. 17/18
� � � � �� �� � � � �� �
nr = 1.728.000
0
0.0005
0.001
0.0015
0.002
0.0025
48 40 32 24 16 8 1
t(cal
l_m
pi)
ncpu
call MPI (MPI)call MPI (hyb)
![Page 29: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/29.jpg)
Grundlagen
Ax = b
Positiv-Beispielv Array-
Transposition
- p. 18/18
� � �� � � �� � � � � � � � �
1234
5678
9
BC
A1 2 34 5 67 8 9A CB
Algorithmus: Vacancy-Tracking
1. lokales Vacancy-Tracking2. globaler Datenaustausch3. lokales Vacancy-Tracking
Größere Partitionen in Hybrid⇒weniger, aber längere Zyklen⇒bessere Cache-Effizienz
![Page 30: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/30.jpg)
Grundlagen
Ax = b
Positiv-Beispielv Array-
Transposition
- p. 18/18
� � �� � � �� � � � � � � � �
1234
5678
9
BC
A1 2 34 5 67 8 9A CB
Algorithmus: Vacancy-Tracking
1. lokales Vacancy-Tracking2. globaler Datenaustausch3. lokales Vacancy-Tracking
Größere Partitionen in Hybrid⇒weniger, aber längere Zyklen⇒bessere Cache-Effizienz
![Page 31: GoBack - in.tum.de · Grundlagen Ax = b Positiv-Beispiel - p. 2/18 l Grundlagen F Distributed memory und MPI F Shared memory und OpenMP F SMP-Cluster und Hybride Programmierung](https://reader033.vdocuments.site/reader033/viewer/2022041415/5e1b1231759a5f101c5aa209/html5/thumbnails/31.jpg)
Grundlagen
Ax = b
Positiv-Beispielv Array-
Transposition
- p. 18/18
� � �� � � �� � � � � � � � �
1234
5678
9
BC
A1 2 34 5 67 8 9A CB
Algorithmus: Vacancy-Tracking
1. lokales Vacancy-Tracking2. globaler Datenaustausch3. lokales Vacancy-Tracking
Größere Partitionen in Hybrid⇒weniger, aber längere Zyklen⇒bessere Cache-Effizienz