Klausur zu High Performance Computing 12. Juli 2013



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

Klausur zu High Performance Computing 7. Februar 2014

Zeichen bei Zahlen entschlüsseln

Professionelle Seminare im Bereich MS-Office

Lineare Gleichungssysteme

OpenMP am Beispiel der Matrizenmultiplikation

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

How to do? Projekte - Zeiterfassung

GRS SIGNUM Product-Lifecycle-Management

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Primzahlen und RSA-Verschlüsselung

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Otto-von-Guericke-Universität Magdeburg

Lineare Gleichungssysteme

Die Post hat eine Umfrage gemacht

Lehrer: Einschreibemethoden

Hochschule Karlsruhe Klausur EAI Prof. Dr. Christian Pape. Klausur EAI WS 05/06. Note: Bearbeitungszeit 90 Minuten Keine Hilfsmittel

Die Lernumgebung des Projekts Informationskompetenz

5.2 Neue Projekte erstellen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

Erfahrungen mit Hartz IV- Empfängern

e-books aus der EBL-Datenbank

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

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!.

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,

Agentur für Werbung & Internet. Schritt für Schritt: -Konfiguration mit Apple Mail

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Bearbeitungshinweise. (20 Punkte)

WIR MACHEN SIE ZUM BEKANNTEN VERSENDER

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

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

Übung: Verwendung von Java-Threads

Konzepte der Informatik

Kapiteltests zum Leitprogramm Binäre Suchbäume

Programmierkurs Java

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Technische Analyse der Zukunft

Webalizer HOWTO. Stand:

TechNote: Exchange Journaling aktivieren

Grundlagen verteilter Systeme

Abitur 2007 Mathematik GK Stochastik Aufgabe C1

Reinigung Normale Reingung der CheckStab Leitfähigkeitselektrode Gründliche Reinigung der Leitfähigkeitselektrode... 2

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

Fragebogen: Abschlussbefragung

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

.NET Code schützen. Projekt.NET. Version 1.0

Systemwette. Sporttip set

Print2CAD 2017, 8th Generation. Netzwerkversionen

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Wir machen neue Politik für Baden-Württemberg

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Simulation LIF5000. Abbildung 1

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Thüringer Kultusministerium. Abiturprüfung 2000

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

Teil 1: IT- und Medientechnik

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Tipps zur Nutzung der ViT 1 Lernen ViT Üben HAU ViT ViT ViT ViT ViT Testen ViT VORSC Bewerten RAGTIME ViT zur Vollversion ViT

macs Support Ticket System

Lies zuerst den unten stehenden Zeitungsartikel und erfülle dann die einzelnen Aufgaben:

HTML5. Wie funktioniert HTML5? Tags: Attribute:

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

Was meinen die Leute eigentlich mit: Grexit?

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Übung - Konfigurieren einer Windows-XP-Firewall

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Pflegende Angehörige Online Ihre Plattform im Internet

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Vergleichsklausur 12.1 Mathematik vom

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Daten sammeln, darstellen, auswerten

impact ordering Info Produktkonfigurator

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

Informationsblatt Induktionsbeweis

Anleitung über den Umgang mit Schildern

Software zum Registrieren und Auswerten von Projektzeiten im Netzwerk

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Handbuch Amos Ersteller: EWERK MUS GmbH Erstellungsdatum:

Lizenzen auschecken. Was ist zu tun?

Anleitung zum Computercheck So aktualisieren Sie Ihr Microsoft-Betriebssystem

Anleitung Postfachsystem Inhalt

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Statuten in leichter Sprache

SEP 114. Design by Contract

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

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Leichte-Sprache-Bilder

Grundlagen der Informatik

Die integrierte Zeiterfassung. Das innovative Softwarekonzept

Hilfe zur ekim. Inhalt:

Ein Überblick in 10 Minuten

Anwendungsbeispiele Buchhaltung

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

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

Transkript:

Britta Nestler, Alexander Vondrous, Fakultät IWI, Hochschule Karlsruhe Klausur zu High Performance Computing 12. Juli 2013 Es sind keine Hilfsmittel zugelassen. Bearbeitungszeit: 90 Minuten Aufgabe 1: Nebenläufigkeit (2P) Moors Law beschreibt, dass sich die Transistoren pro Flächeneinheit etwa alle 2 Jahre verdoppeln. Dieses Gesetz ist bis heute gültig und wird auch in den nächsten Jahren gültig bleiben. Auch wenn Moors Law bestand hat, begann vor wenigen Jahren ein Paradigmenwechsel bei der Prozessorentwicklung. a) Erläutern Sie in wenigen Worten welcher Paradigmenwechsel bei der Entwick- (0,5P) lung von Prozessoren stattgefunden hat um bei gleichbleibendem Takt eine höhere Rechenleistung zu erzielen. b) Welche Konsequenz hat dieser Paradigmenwechsel für die Entwicklung lei- (0,5P) stungsfähiger Software? c) Nennen und Beschreiben Sie kurz 2 Designkriterien für parallele Software, die (1P) bei der Entwicklung Nebenläufiger Software berücksichtigt werden sollen. Aufgabe 2: Parallele Leistungsmaße Teil 1 von 2 (3P) Der neue Zentralrechner der Terranischen Liga auf Korhal IV soll zur Kryptanalyse von Protoss Nachrichten genutzt werden. Die Wissenschaftler auf Korhal testen eine zentrale Komponente des Softwarenervensystems um eine hohe Effizienz zu erhalten. Analysieren Sie als Leiter der Abteilung für Hochleistungsrechnen die Messergebnisse. 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? Be- (1P) gründen Sie Ihre Antwort kurz. CPUs Laufzeit Speedup Effizienz 1 4 800 - - 6 960 110 48 603 8 1600 6

Aufgabe 3: Parallele Leistungsmaße Teil 2 von 2 (2P) Eine weitere Komponente des Softwarenervensystems wurde getestet. Weil die Problemstellung von Natur aus sehr groß ist, soll jeweils der relative Speedup zur vorherigen Messung berechnet werden. a) Berechnen Sie den relativen Speedup basierend auf der jeweils vorherigen Mes- (1P) sung für die untere Tabelle und tragen Sie Ihre Ergebnisse in die Tabelle ein. Bestimmen Sie auch den idealen relativen Speedup zur jeweils vorherigen Messung. b) Würden Sie die Effizienz des Programms als gut oder als schlecht einschätzen? (1P) Begründen Sie in wenigen Worten Ihre Antwort. CPUs Laufzeit relativer Speedup Idealer relativer Speedup 60 540 - - 210 180 840 60 Aufgabe 4: Amdahl und Gustafson (4P) Für die Sprungvorhersage der Kreuzer im Weltall besitzt jedes Schiff eine handelsüblichen JUMP-42 Chip, der mit 21 Prozessoren (P = 21) Rechnet. Trotz seiner 21 Recheneinheiten erzielt der JUMP-42 Chip lediglich einen Speedup von 15 (S = 15). Bestimmen Sie für das zentrale Rechenzentrum der Konföderation t s und t p nach Amdahl und nach Gustafson. a) Bestimmen 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 dafür die Anzahl der Prozessoren gegen unendlich streben. c) Bestimmen Sie t s und t p nach Gustafson. (1,5P)

Aufgabe 5: OpenMP Teil 1 von 2 (1,5P) Als einer von Kerrigans Zerebraten haben Sie die Aufgabe ein infiziertes Schlachtschiff der Liga für eine spezielle Operation zu manipulieren. Leider haben die terranischen Entwickler den Code für die geheime psionische Waffe nur fehlerhaft implementiert. Es liegt an Ihnen die Fehler im Parallelem Modul zu beseitigen. Finden Sie den Fehler im Programm, der dazu führt, das die Summe nicht korrekt berechnet wird und beschreiben Sie ggf. im Pseudocode Ihre Korrektur. (1,5P) int i,tid; double sum = 0.0; double part; #pragma omp parallel shared (part, tid) private(sum) part = 0.0; tid = omp_get_thread_num(); for (i=0; i < 42; i++) part += calcfoo(tid, i); #pragma omp atomic sum += part; printf("sum: %lf\n", sum); Aufgabe 6: OpenMP Teil 2 von 2 (2P) Die verschachtelte Parallelisierung mit OpenMP macht den terranischen Entwicklern Schwierigkeiten, weil der gleiche Code auf unterschiedlichen Maschinen unterschiedliche Ergebnisse erzeugt. Erstellen Sie die möglichen Ausgaben des folgenden Programmes mit und ohne nested parallelization. a) Welche Ausgabe wird bei eingeschalteter Schachtelung (nesting) erscheinen? (1P) b) Auf einigen Rechnern ist nesting ausgeschaltet. Welche Ausgaben wird sich (1P) bei ausgeschaltetem Nestling zeigen? Schreiben Sie die Ausgabe in verkürzter Form auf. #pragma omp parallel num_threads(3) printf("lvl 1 ID: %ld\n", omp_get_thread_num()); #pragma omp parallel num_threads(3) printf("lvl 2.1 ID: %ld\n", omp_get_thread_num()); #pragma omp parallel num_threads(3) printf("lvl 2.2 ID: %ld\n", omp_get_thread_num());

Aufgabe 7: MPI Teil 1 von 2 (2P) Weil die terranische Liga Kolonien am Rande des Koprulu Sektors besitzt, haben Ingenieure der Randzone typischerweise MPI zur parallelen Datenverarbeitung genutzt. Leider konnten Sie Ihr Projekt nicht testen, weil deren Bewusstsein von einer psionischen Masse unbekannter Herkunft entführt wurde. Weil Sie mit den Köchen aus der Kantine eine Zwist angefangen haben, müssen Sie das tote Projekt vervollständigen. Ihnen fallen bestimmte Stellen im Code auf, die nicht funktioniert haben können. Finden Sie die Fehler. int result[1]; int data[1]; if (rank!= 1) data = getdata(); MPI_Allreduce( data, result, 7, MPI_INT, MPI_SUM, MPI_COMM_WORLD ); a) Finden und beheben Sie die 2 Fehler, die sich in den obigen Quelltext befinden. (1P) b) Wozu dient die MPI_Allreduce(...) Funktion? Ergänzen Sie Ihre Antwort (1P) durch 2 Beispiele. Aufgabe 8: MPI Teil 2 von 2 (4P) Auch nach der erfolgreichen Wiederbelebung des alten Projektes hat Sie Jim Raynor nach wiederholten Auseinandersetzung mit Kachinsky zur Korrektur der Raumstabilisatoren der Hyperion verdonnert. Korrigieren Sie die Fehler in der Ansteuerung der Stabilisatoren. long localmax; if (rank!= 1) for (int i = 0; i < num_workers-1; i=i+2) MPI_Irecv(&localmax, 1, MPI_LONG, i, 123, MPI_COMM_WORLD, &request); MPI_Wait(&request, &status); globalmax = findmaxvalue(localmax, globalmax); doimportantcalculation(globalmax); else MPI_Isend(&localmax, 1, MPI_LONG, 1, 123, MPI_COMM_WORLD, &request); somefoobarlongcalc(); MPI_Wait(&request, &status); a) Welche Funktionalität sollte laut der Variablenbenennung implementiert wer- (0,5P) den? b) Beheben Sie die Fehler im Code, so dass der Code das macht, wozu er gedacht (2P) ist. (Für Aufgabenteil c) bitte umblättern)

c) Mit welcher MPI Funktion kann diese Funktionalität wesentlich übersichtlicher (1,5P) gestaltet werden. Implementieren Sie im Pseudocode die verbesserte Variante. Aufgabe 9: Performance Modellierung (4P) Ein Programm zur Bestimmung der Weglänge von Streckenabschnitten soll mit dem Performance Modell nach Van der Velde untersucht Werden. Eine Matrix enthält alle Vektoren, deren Länge bestimmt und aufsummiert werden soll. Gehen Sie davon aus, dass die die Problemgröße glatt durch die Anzahl Prozessoren geteilt wird. Die Wurzelberechnung sqrt(...) wird als eine Operation angesehen. Hinweise: Verwenden Sie die Notation der folgenden Tabelle Sequentiell N p t a t k T s T p Problemgröße Anzahl Prozesse Rechenzeit je Operation Kommunikationszeit Sequentielle Laufzeit Partallele Laufzeit len = 0.0; for (i = 0; i < N; i++) len += sqrt(matrix[i][x] * matrix[i][x] + matrix[i][y] * matrix[i][y] + matrix[i][z] * matrix[i][z]); Parallel len = 0.0; // each parallel task has its own matrix of size N/p for (i = 0; i < N/p; i++) len += sqrt(matrix[i][x] * matrix[i][x] + matrix[i][y] * matrix[i][y] + matrix[i][z] * matrix[i][z]); if (myid == 0) for (i = 1; i < p; i++) len += receive from i else send len to 0 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. d) Nennen Sie 2 sinnvolle Anwendungen für Performance Modelle. (1P)

Aufgabe 10: OpenCL (1,5P) Der Supercomputer ATLAS des Supertransporters Nagglfar basiert auf alten aber dennoch effizienten Grafikprozessoren. Um nach dem Absturz auf Tarsonis die Rechenleistung für das Terraformingvorhaben zu nutzen, müssen sehr große Datenlisten (sectorarray) verarbeitet werden. Weil es nicht effizient ist mehr Threads als die Hardware besitzt zu verwenden, müssen Sie einen OpenCL Kernel schreiben, der eine Liste der Länge arraylength mit einer beschränken Anzahl OpenCL threads (threads) verarbeiten kann. Jedes Element der Liste muss von der bereits implementierten Funktion calcsektor(sector) aufgerufen werden. Sie müssen davon ausgehen, dass arraylength > threads ist. Nutzen Sie dafür das folgende Grundgerüst. Hinweis: Bedenken Sie, dass alle Threads Zugriff auf die globale Liste haben. // OpenCL kernel function for list computation kernel void calcterraforming( global sector* sectorarray, int arraylength, int threads) // get thread id int threadid = get_global_id(0); // Call calcsektor(..) for all sectors here

Aufgabe 11: Kommunikationsnetze Teil 1 von 2 (2,5P) Der Supercomputer ATLAS wurde auf Tarsonis wieder reaktiviert. Er enthüllt ein psionisches Netzwerk der Xel Naga auf dem Zerg Planeten Kaldir. Als Wissenschaftler haben Sie die Aufgabe dieses Netzwerk für die Liga zu untersuchen. Bestimmen Sie Kennzahlen und tragen Sie diese in die unten angegebene Tabelle ein. Abbildung 1: Psionisches Xel Naga Netzerk Durchmesser Grad (max/min) / Bisektionsbandbreite Konnektivität Aufgabe 12: Kommunikationsnetze Teil 2 von 2 (1,5P) Durch den Technologietransfer kann die Liga diese psionischen Kräft zur Kontrolle von Zerg Einheiten einsetzen. Leider muss dafür ein bestimmtes Netzwerk errichtet werden. a) Erstellen Sie ein Netzwerk, dass einen Durchmesser von 3 besitzt. (0,5P) b) Erstellen Sie ein Netzwerk, dass einen Durchmesser von 3 und den Grad 4 (0,5P) besitzt. c) Erstellen Sie ein Netzwerk, dass einen Durchmesser von 3, den Grad 4 und (0,5P) eine Konnektivität von 2 besitzt. Hinweis: Es kann passieren, dass der Entwurf aus Teilaufgabe b) für die Lösung von Teilaufgabe c) ungeeignet ist, so dass evtl. ein anderen Ansatz gewählt werden muss. Viel Erfolg! The only way you get good at Starcraft is if you re self critical. - Day9