blatt04.md 3.23 KB
Newer Older
1 2 3
Title: Blatt 4
status: hidden

Christoph Gerum's avatar
Christoph Gerum committed
4
# Parallelrechnerarchitekturen mit geteiltem Speicher
5

Christoph Gerum's avatar
Christoph Gerum committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Führen Sie vor dem Bearbeiten des Blattes wieder einen *git pull* durch.

## Aufgabe 1: Simulation von Parallelrechnerarchitekturen

In dieser Aufgabe soll ein Multicoresystem mit gem5 im System Call Emulation Mode simuliert werden. 

Dazu finden Sie im Verzeichnis m5threads dieses Übungsblatts verschiedene Testprogramme. 

Zum Übersetzen der Testprogramme  installieren Sie zunächst einen C++-Compiler für das Zielsystem:

    sudo apt-get install g++-arm-linux-gnueabihf -y

Wechseln Sie nun in das Verzeichnis dieses Aufgabenblatts.
Die Testprogramme lassen sich dann mit dem Folgenden Befehl übersetzen:

    make -C  m5threads/tests/
    
Das Verzeichnis *m5threads/tests/test_omp* enthält nun eine parallelisierte Implementierung einer Matrixmultiplikation. 
Der Benchmark kann mit der folgenden Kommandozeile ausgeführt werden. 

     ${GEM5_DIR}/build/ARM/gem5.opt MCConfig.py -c m5threads/tests/test_omp -o "$n $s" -n $n

Wobei $n durch die Anzahl der Rechenkerne und $s durch die Größe der Matrizen ersetzt werden muss.

Führen Sie Performance Simulationen für verschiedene Matrixgrößen im Bereich 32-512 und Rechenkerne im Bereich von 1-4 durch. 
Wie verhält sich der Speedup des Programms. Stellen Sie die Messergebnisse in einem Schaubild grafisch dar. 
Christoph Gerum's avatar
Christoph Gerum committed
32 33 34

### Fragen

Christoph Gerum's avatar
Christoph Gerum committed
35 36 37 38 39
- Erstellen Sie ein Grafische-Darstellung des durch die Konfigurationsdatei *MCConfig.py* beschriebenen systems wenn zwei Prozessorkerne simuliert werden. 
- Parallelrechnerarchitekturen mit geteiltem virtuellen Addressraum werden in UMA- und NUMA-Architekturen unterschieden.
  Beschreiben Sie die Vor- und Nachteile der beiden Architekturarten kurz. 
- Welche der beiden Architekturarten wird durch *MCConfig.py* beschrieben. 

Christoph Gerum's avatar
Christoph Gerum committed
40 41
### Abgabe

Christoph Gerum's avatar
Christoph Gerum committed
42
1.  die Messungen des Speedups     
Christoph Gerum's avatar
Christoph Gerum committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
2.  die Antworten auf die Fragen  

## Aufgabe 2: Superlinearer Speedup

Auf der englischen Wikipedia unter wird folgende Aussage zum Thema 
[superlinearer Speedup](https://en.wikipedia.org/wiki/Speedup#Super-linear_speedup)  bei
Parallelrechnerarchitekturen gemacht:

> Sometimes a speedup of more than $A$ when using $A$ processors is observed 
> in parallel computing, which is called ''super-linear speedup''. Super-linear 
> speedup rarely happens and often confuses beginners, who believe the t
> heoretical maximum speedup should be $A$ when $A$ processors are used.

Da Sie ja nicht zu den genannten "`Anfängern"' gehören  stiftet bei Ihnen
das Auftreten von superlinearem Speedup keine Verwirrung, so dass
Ihnen die folgenden Aufgaben auch keine Probleme bereiten dürften.

Schreiben Sie ein Benchmark-Programm, das ein von Ihnen definiertes
Problem löst und das bei  paralleler Bearbeitung auf einer gem5 Konfiguration mit mehreren Kernen einen superlinearen Speedup zeigt.

### Fragen 

-  Beschreiben Sie mindestens eine Ursache für das Zustandekommen von
   superlinearem Speedup bei der Verwendung eines Parallelrechners zur Lösung
   eines Problems.

- Erstellen sie wie in Aufgabe 1 ein Schaubild das den Verlauf des Speedups bei 
  einer schrittweisen Erhöhung der Anzahl der Rechenkerne zeigt.  
 
### Abgabe
  
1.  der Quellcode des Programms und die verwendete gem5 konfiguration      
2.  die Antworten auf die Fragen