Aufgabe 1
Gitter 2^10 x 2^10 , Torus, 9-Point-Stencil
1) 1-dim. Zerlegung in Streifen
2) 2-dim. Zerlegung in Rechtecke für n = 2^k x 2^k Prozessoren
a) Zerlegung skizzieren für k=2
b) Task Interaction Graph zeichnen für k=2
c) Formel für die Anzahl Nachrichten bzw. Datenmenge finden (pro Knoten 4Byte)
d) Formel aus c) für k=2 und k=3 ausrechnen
e) Welche Zerlegung ist effizienter und warum?
Aufgabe 2
a) Was versteht man unter SPMD?
b) Welche Semantik/Parameter hat MPI_Barrier
c) Anwendungsbeispiel für MPI_Barrier
d) mögliche Realisierung von MPI_Barrier durch MPI Laufzeitumgebung
Aufgabe 3
geg: T(1)=1000 T(10)=700 T(25)=680
a) ges: S(10) S(25)
b) Karp-Flatt-Metrik für n=10 und n=25 bzw. max !SpeedUp
c) E(10), E(25) und max. n damit E(n) über 0,5
d) Beurteilung der Parallelisierbarkeit
Aufgabe 4
HPF-Programm kommentieren
PROGRAM ABmult IMPLICIT NONE INTEGER, PARAMETER :: N = 100 INTEGER, DIMENSION (N,N) :: A, B, C INTEGER :: i, j !HPF$ PROCESSORS square(2,2) !HPF$ DISTRIBUTE (BLOCK,BLOCK) ONTO square :: C !HPF$ ALIGN A(i, * ) WITH C(i,j) !HPF$ ALIGN B( * ,j) WITH C(i,j) A = 1 B = 2 C = 0 DO i = 1, N DO j = 1, N C(i,j) = DOT_PRODUCT(A(i,:), B(:,j)) END DO END DO WRITE( * ,*) C END
Aufgabe 5
Was sind Receive-Livelocks und wie werden sie im LINUX-Kernel vermieden?