Klausur zu High Performance Computing 7. Februar 2014



Ähnliche Dokumente
Klausur zu High Performance Computing 09. Juli 2011, SS 2011

Klausur zu High Performance Computing 12. Juli 2013

Zeichen bei Zahlen entschlüsseln

Algorithmen & Datenstrukturen 1. Klausur

Grundlagen der Theoretischen Informatik, SoSe 2008

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Professionelle Seminare im Bereich MS-Office

Installation OMNIKEY 3121 USB

e-books aus der EBL-Datenbank

Kapiteltests zum Leitprogramm Binäre Suchbäume

Primzahlen und RSA-Verschlüsselung

GS-Programme 2015 Allgemeines Zentralupdate

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Installation und Bedienung von vappx unter Android

1 Vom Problem zum Programm

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

macs Support Ticket System

Übung: Verwendung von Java-Threads

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Inbetriebnahme Profinet mit Engineer. Inhaltsverzeichnis. Verwendete Komponenten im Beispiel:

Lehrer: Einschreibemethoden

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Updatehinweise für die Version forma 5.5.5

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Verwendung des IDS Backup Systems unter Windows 2000

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Die Post hat eine Umfrage gemacht

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Was meinen die Leute eigentlich mit: Grexit?

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Statuten in leichter Sprache

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

PC CADDIE Web-SMS-Service

Der große VideoClip- Wettbewerb von Media Markt.

Microsoft Update Windows Update

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Ablauf Vorstellungsgespräch

DER SELBST-CHECK FÜR IHR PROJEKT

Wärmebildkamera. Arbeitszeit: 15 Minuten

Programmierung für Mathematik (HS13)

Beispiel(unten ist der Spielfeldrand):

Produktschulung WinDachJournal

SEMINAR Modifikation für die Nutzung des Community Builders

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

FRAGEBOGEN ANWENDUNG DES ECOPROWINE SELBSTBEWERTUNG-TOOLS

UMSTELLUNG DER RÖNTGEN-SCHNITTSTELLE DÜRR-DBSWIN AUF DÜRR-VDDS

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Installation und Bedienung von vappx unter ios

Einführung in die Programmierung

Teil 1: IT- und Medientechnik

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Erstellen einer digitalen Signatur für Adobe-Formulare

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Hilfe zur ekim. Inhalt:

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Studieren- Erklärungen und Tipps

Anlage eines neuen Geschäftsjahres in der Office Line

ICS-Addin. Benutzerhandbuch. Version: 1.0

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

OpenMP am Beispiel der Matrizenmultiplikation

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Wie erreiche ich was?

4. Erstellen von Klassen

Kontrollstrukturen und Funktionen in C

Benutzerhandbuch MedHQ-App

Klausur Nr. 1. Wahrscheinlichkeitsrechnung. Keine Hilfsmittel gestattet, bitte alle Lösungen auf dieses Blatt.

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Einzelplatz - USB-Lizenz

Anleitung zum Computercheck So aktualisieren Sie Ihr Microsoft-Betriebssystem

Protect 7 Anti-Malware Service. Dokumentation

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Multiplayer Anweisungen

Fachwirt. Geprüfter. werden. Intensivtraining für eine erfolgreiche IHK-Prüfung. Teil A wirtschaftsübergreifende Qualifikationen

Anleitung für den Euroweb-Newsletter

Wege zur Patientensicherheit - Fragebogen zum Lernzielkatalog für Kompetenzen in der Patientensicherheit

Änderungen an der Mareon-Schnittstelle

Lernaufgabe Industriekauffrau/Industriekaufmann Angebot und Auftrag: Arbeitsblatt I Auftragsbeschreibung

YouTube: Video-Untertitel übersetzen

Datenexport aus JS - Software

Die SPD und die Grünen machen im Niedersächsischen Landtag. Alle Menschen sollen in der Politik mitmachen können.

Prüfung Computation, Programming

Guten Morgen und Willkommen zur Saalübung!

Noten ausrechnen mit Excel/Tabellenkalkulation. 1) Individuellen Notenschlüssel/Punkteschlüssel erstellen

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Die Größe von Flächen vergleichen

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Programmierkurs Java

SMS/ MMS Multimedia Center

a) Bis zu welchem Datum müssen sie spätestens ihre jetzigen Wohnungen gekündigt haben, wenn sie selber keine Nachmieter suchen wollen?

Transkript:

Britta Nestler, Alexander Vondrous, Johannes Hötzer, Marcus Jainta Fakultät IWI, Hochschule Karlsruhe Klausur zu High Performance Computing 7. Februar 2014 Es sind keine Hilfsmittel zugelassen. Bearbeitungszeit: 90 Minuten Aufgabe 1: Parallele Datenverarbeitung (2P) Die immer noch schnelle Entwicklung der Halbleitertechnologie führt dazu, dass die Leistung eines heute handelsüblichen PCs der Rechenleistung des schlechtesten Supercomputers vor 8 bis 10 Jahren entspricht. Der jetzige schlechteste Supercomputer besitzt 22 212 Prozessoren und verfügt über eine Rechenleistung von 117,8 TFlop/s. a) Erläutern Sie in wenigen Worten welche Konsequenz dieser Leistungszuwachs (0,5P) für die Entwicklung von leistungsstarker Software hat, damit auch in 5 bis 10 Jahren von dem Leistungszuwachs profitiert werden kann. b) Auf Supercomputern werden häufig Simulationen durch geführt um Phänome- (1,5P) ne und Zusammenhänge zu untersuchen. Nennen Sie sechs Gründe die für den Einsatz von Simulationen sprechen. Aufgabe 2: Parallele Leistungsmaße Teil 1 von 2 (3P) Gültige Stargate Adressen durch Versuch und Irrtum heraus zu finden ist nahezu unmöglich. Weil die Symbole auf dem Gate und auf dem DHD (Dial Home Device) auf Sternenkonstellationen beruhen ist es einfacher eine Anwendung zu entwickeln, die alle bekannten Sternsysteme nach diesen Symbolen durchsucht. Daniel Jackson hat eine Anwendung implementiert, die gültige Stargate Adressen mit Hilfe eines Hochleistungsrechners sucht. Tests mit einer künstlichen Adresse und dem Hochleistungscluster des Cheyenne Mountain Complexes haben folgende Laufzeiten ergeben. CPUs Laufzeit Speedup Effizienz 1 120 000 - - 4 40 000 15 10 000 220 600 1 500 100 a) Berechnen Sie Speedup und Effizienz der Testläufe. Tragen Sie Ihre Ergebnisse (2P) in die Tabelle ein. b) Welche Konfiguration würden Sie für den Produktiveinsatz vorschlagen, wenn (0,5P) es auf die Laufzeit ankommt? Begründen Sie Ihre Antwort mit wenigen Worten. c) Welche Konfiguration würden Sie für den Produktiveinsatz vorschlagen, wenn (0,5P) es auf effiziente Verarbeitung ankommt? Begründen Sie Ihre Antwort mit wenigen Worten.

Aufgabe 3: Parallele Leistungsmaße Teil 2 von 2 (2P) General Hammond hat die Untersuchungen von Sam und Daniel ausgewertet als das SG-1 Team auf PB2-908 rätselhafte Schriftzeichen übersetzt. Nachdem das Team zurück kehrt müssen Sie erste einmal die Analyse auf Plausibilität prüfen. Betrachten Sie Abbildung 1 und beurteilen Sie die 4 verschiedenen angeblichen Messergebnisse. Abbildung 1: Untersuchung von 4 unterschiedlichen Konfigurationen einer parallelen Anwendung. a) Welche Setups sollten ein zweites mal untersucht werden? Begründen Sie Ihre (1P) Antwort in wenigen Worten. b) Wie kann ein höherer Speedup erzielt werden als ideal möglich wäre und wie (1P) wird diese Form von Speedup genannt? Aufgabe 4: Amdahl und Gustafson (3P) Der Boardcomputer der USS Daedalus wurde mit 33 Prozessoren (P = 33) ausgerüstet. Ihre Aufgabe ist das Laufzeitverhalten der bestehenden Anwendungen zu untersuchen. Ihnen wird als Messergebnis eine Effizienz von 63,6% (E = 7 ) vorgelegt. Sie müssen als leitender Techniker t s und t p nach Amdahl für Ihren Bericht 11 berechnen. a) Berechnen Sie t s und t p nach Amdahl. (1,5P) b) Berechnen Sie welcher Speedup nach Amdahl höchstens erreicht werden kann? (1P) Lassen Sie die Anzahl der Prozessoren gegen unendlich streben. c) Bestimmen Sie t s und t p nach Gustafson. (0,5P)

Aufgabe 5: Pattern (1P) Dr. Samantha Carter hat es mit Hilfe der XKeyscore Technologie geschafft, die ein Yotta Byte große Datenbank der Antiker in Textform in einen neu gebauten Supercomputer aus PC Komponenten der N(A)SA in Utah zu laden. Welcher parallele Algorithmus eignet sich besonders gut um diese große Datenmenge nach Stichwörtern und Zusammenhängen zu durchsuchen? In welche Phasen lässt sich ein Programm einteilen, dass diesen Algorithmus nutzt? Beschreiben Sie kurz was in diesen Phasen passiert. (0,5P) (0,5P) Aufgabe 6: OpenMP Teil 1 von 2 (2P) Auf Atlantis muss bei der jährlichen Reinigung auch die Software geprüft werden. Sie sind über eine Stelle im Lebenserhaltungssystemen gestoßen, welches den geringen Sauerstoffgehalt in manchen Teilen der Stadt und seine schlechte Reaktionszeit erklären könnte. a) Erläutern Sie wieso in Version 1 die Anzahl der Sauerstoffatome fehlerhaft (1P) berechnet wird und schlagen Sie eine schnelle Fehlerkorrektur vor ohne auf die parallele Laufzeit Rücksicht zu nehmen. b) Bei Version 2 wird die Anzahl der Atome fehlerfrei berechnet. Die parallele (1P) Laufzeit ist schlechter als die sequentielle Laufzeit und muss verbessert werden. Erklären Sie wieso die parallele Laufzeit höher ist als die sequentielle? Schlagen Sie eine Verbesserung vor. Version 1 Version 2 int counto2(atom *atoms, int n) { int i; int count = 0; #pragma omp parallel for for (i = 0; i < n; ++i) { if (isoxygen(atoms[i]) == true) { ++count; return count; int counto2(atom *atoms, int n) { int i; int count; int private_count[omp_get_num_threads()]; for (i = 0; i < omp_get_num_threads() ; ++i) { private_count[i] = 0; #pragma omp parallel { #pragma omp for schedule(static) for (i = 0; i < n; ++i) { if (isoxygen(atoms[i]) == true) { ++private_count[omp_get_thread_num()]; #pragma omp atomic count += private_count[omp_get_thread_num()]; return count;

Aufgabe 7: OpenMP Teil 2 von 2 (2P) Bei der jährlichen Reinigungsaktion bemerken Sie eine weitere Stelle in der Anwendung zur Ansteuerung des Ringtransporters. Manchmal funktioniert die Ansteuerung nicht richtig. a) Finden und beschreiben Sie die Fehlerquelle in der Funktion foobar(). Wieso (1P) funktioniert es manchmal und manchmal nicht. b) Welche OpenMP Direktive vereinfacht die Funktion foobar() wesentlich und (1P) korrigiert den Fehler? Implementieren Sie die vereinfachte und Version in Pseudocode. void foobar(data* points, int n) { #pragma omp parallel { int i; int id = omp_get_thread_num(); int threads = omp_get_num_threads(); for (i=id*n/threads; i < (id+1)*n/threads; i++) { bar(points[i]);

Aufgabe 8: MPI (2P) Zur Dekodierung der Stargate Adressen hat Sam angefangen den Master-Worker Algorithmus zu implementieren. Jedoch musste sie dringend nach Altanis reisen und so hat Dr. Rodney McKay versucht das Programm fertig zu schreiben, um Sam zu Beweisen das er die parallele Programmierung beherrscht. Helfen Sie Dr. Rodney McKay die Lievelocks zu entfernen, die korrekte Datenübertragung sicher zu stellen, sowie dafür zu sorgen, dass das Programm terminiert. Achten Sie auf Klammern. Beeilen Sie sich und stellen Sie das Programm fertig bevor Sam zurück ist bzw. die Klausur vorbei ist. #include "mpi.h" #include <stdio.h> int main(int argc, char *argv[]) { int rank, numprocs, left, right; int buffer[10]; MPI_Request request; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank!= 0) { // Master while (true) { for (int i = 0; i < numprocs; i++) { MPI_Irecv(buffer, 10, MPI_INT, i, 576766, MPI_COMM_WORLD, &request); int flag; MPI_Test(&request, &flag, &status); if (!flag) { decodegateadress(); // Do something useful while waiting for data MPI_Wait(&request, &status); testgateadress(buffer); storegateadress(buffer); else { // Worker decodegateadress(buffer); MPI_Isend(buffer, 5, MPI_INT, 4, 6656665, MPI_COMM_WORLD, &request); MPI_Isend(buffer, 5, MPI_INT, 4, 6656665, MPI_COMM_WORLD, &request); MPI_Finalize(); return 0;

Aufgabe 9: Performance Modellierung (2P) Ein Programm zur Simulation des Wärmetransportes entlang einer Energieleitung soll mit dem Performance Modell nach Van der Velde untersucht werden. Das eindimensionales Array value der Länge N + 2 enthält die Startbedingungen. An dem linken und rechtem Rand werden keine Berechnungen durchgeführt. Die Berechnungen der Zählervariablen im Schleifenkopf werden nicht berücksichtigt. Jede Sendeoperation und jede Empfangsoperation ist jeweils eine Kommunikationsopertation. Zuweisungen werden nicht als einer Berechnungsoperation gewertet. Hinweise: Verwenden Sie die Notation der folgenden Tabelle N Problemgröße (ohne Rand) t a Rechenzeit je Operation T s Sequentielle Laufzeit p Anzahl Prozesse t k Kommunikationszeit T p Parallele Laufzeit Sequentiell for (time = 0; time < 1000; time++) { for (i = 1; i < N1; i++) { // insgesamt N Iterationen: N1 = N+1 value[i] = value[i] + dt * (value[i-1] - 2 * value[i] + value[i+1])/dx; Parallel for (time = 0; time < 1000; time++) { for (i = 1; i < Np1; i++) { // Insgesamt N/p viele Iterationen: Np1 = N/p + 1 value[i] = value[i] + dt * (value[i-1] - 2 * value[i] + value[i+1])/dx; send value[1] to previous receive value[0] from previous send value[np] to next receive value [Np1] from next a) Erstellen Sie das Performance Modell nach Van der Velde für das sequentielle (1P) Programm. b) Erstellen Sie das Performance Modell nach Van der Velde für das parallele (2P) Programm. c) Berechnen Sie den Speedup mit folgendem Parametersatz: (1P) N = 300 t a = 1 p = 50 t k = 3

Aufgabe 10: GPU (3P) Auf Atlantis soll ein neuer Zentralrechner aufgebaut werden. Es entbrennt eine Debatte ob hauptsächlich CPUs oder GPUs verwendet werden sollen. Helfen Sie bei der Diskussion. a) Beschreiben Sie zwei grundlegende Unterschiede bei der Datenverarbeitung (1P) mit GPUs und mit CPUs b) Welche Operationen lassen sich mit GPUs besonders schnell berechnen? (0,5P) c) Welche der folgenden Anwendungen eignen sich besonders gut zur Berechnung (1,5P) auf GPUs und welche eignen sich besser für CPUs? Begründen Sie ggf. Ihre Antwort. 1) Prozess scheduling (Betriebssystem) 2) Rendering/Raytracing (Lineare Algebra) 3) Video encoding (Verarbeitung von Bildern) 4) Graph Algorithmen (z.b. Diskstra - kürzester Weg) 5) Wärmeleitung auf regelmäßigen Gittern 6) Zustandsautomaten CPU GPU

Aufgabe 11: OpenCL (1P) Weil Sam und Daniel gerade keine Torverbindung zur Erde bekommen, versuchen Sie sich die Zeit mit Programmieren zu vertreiben. Der zelluläre Automat Game of Life soll mit OpenCL implementiert werden. Wer als erstes fertig ist gewinnt Ruhm (Pizza) und Ehre (ein Getränk). Sie als dritte Person nehmen die Herausforderung an. Ihnen fehlt noch eine kleiner Teil. Berechnen Sie die Koordinaten für den Zugriff auf die benachbarten Zellen wie in der folgenden Abbildung gezeigt. Das Array cell ist linear indiziert und für jede cell wird ein eigener OpenCl Thread gestartet. Die Wahl der Achsen ist Ihnen überlassen. Hinweis: Sie müssen keine Randbehandlung durch führen. // Game of Life kernel void gameoflife( global int* cell, int numx, int numy) { // get thread id int threadid = get_global_id(0); activecells = 0; int L= int R= int O= int U= int LO= int RO= int LU= int RU= // get neighbor cells values if (cell[l]) activecells++; if (cell[r]) activecells++; if (cell[o]) activecells++; if (cell[u]) activecells++; if (cell[lo]) activecells++; if (cell[ro]) activecells++; if (cell[lu]) activecells++; if (cell[ru]) activecells++; [...]

Aufgabe 12: Kommunikationsnetze Teil 1 von 2 (2,5P) Auf einer noch unbekannten Galaxie befindet sich das Vorgängermodell der heutigen Stargatetechnologie. Die Tore sind direkt verbunden und Sprünge erreichen nicht jedes Gate direkt. Es müssen also mehrere Sprünge durchgeführt werden um ein bestimtes Ziel zu erreichen. Untersuchen Sie das Netz und tragen Sie die Kenngrößen in die Tabelle ein. Abbildung 2: Kleines fest verdrahtetes Stargatenetz einer kleinen Galaxie am Rande des Universums. Durchmesser Grad (max/min) / Bisektionsbandbreite Konnektivität Viel Erfolg! There is no place like