Paralleles Rechnen 2005

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?