TU Wien:High Performance Computing Hochleistungsrechnen VU (Träff)
Daten[Bearbeiten | Quelltext bearbeiten]
Vortragende | Sascha Hunold• Ruben Laso Rodriguez• Jesper Larsson Träff |
---|---|
ECTS | 4,5 |
Alias | High Performance Computing (en) |
Letzte Abhaltung | 2024S |
Sprache | „bei bedarf in englisch“ ist kein zulässiger Sprachcode. |
Mattermost | high-performance-computing-hochleistungsrechnen • Register • Mattermost-Infos |
Links | tiss:184725, eLearning |
Inhalt[Bearbeiten | Quelltext bearbeiten]
noch offen, bitte nicht von tiss oder Homepage kopieren, sondern aus Studierendensicht beschreiben.
Ablauf[Bearbeiten | Quelltext bearbeiten]
noch offen
Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]
noch offen
Vortrag[Bearbeiten | Quelltext bearbeiten]
noch offen
Übungen[Bearbeiten | Quelltext bearbeiten]
noch offen
Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]
WS23/24:
- Mündliche Prüfung
- Beginnt eher als Abgabegespräch, dann wird immer mehr in die Theorie gefragt. Fragen zum Übungsteil waren bei mir in etwa folgende, damit ihr ein Gefühl bekommt worauf ihr euch einstellen könnt:
- Verhalten von blocking operations erklären
- Wie habe ich die initialen Daten generiert/verteilt (in meinem Fall ein Broadcast, was suboptimal war, Scatter wäre effizienter gewesen. Das habe ich aber recht schnell abgefangen weil ich das eh schon wusste und damit gerechnet hab)
- Erklären warum die Reihenfolge bei send/recv wichtig ist (potentiell deadlocks, die frage kam auf weil ich in meiner impl sequentiell zuerst 8 send und dann 8 recv hatte)
- Erklären was für Operationen ich benutzt habe, was der unterschied ist, wie man das graph neighborhood aufbaut (inkl wie die Funktion genau heißt (mpi_dist_graph_create))
- Haben mich dann relativ lang drauf festgenagelt wer bei meiner sendrecv Implementierung jeweils Daten austauscht und in welcher Reihenfolge, aber ohne mich dabei in den Code schauen zu lassen. Dadurch dass ich die Prüfung erst im März gemacht hab war die Übung schon >2 Monate her, und ich hatte solche Implementierungsdetails natürlcih nicht mehr im Kopf, das fand ich relativ anstrengend. Hätte ich kurz einen Blick auf meinen Code werfen können hätte ich die Frage problemlos zufriedenstellend beantworten können und auch erklären können, worauf sie dann im Endeffekt hinaus wollten)
- Dann gings langsam eher zu Theoriefragen über:
- Was ist gather/scatter?
- Eines davon algorithmisch (grob) beschreiben
- alpha/beta efficiency des Algorithmus (inkl vollständiger Formel), lower bounds erklären
- Anzahl der comm rounds?
- Eines davon algorithmisch (grob) beschreiben
- Im Vergleich dazu: Allgather
- Was ist da beim algo anders?
- Auch wiedder efficiency, comm rounds
- Was kann beim Allgather ein Problem sein? (wollten darauf hinaus was passiert wenn p keine zweierpotenz ist, und warum das ein Problem sein kann)
- Was sind die _v Varianten der mpi calls und wie unterscheiden sie sich von den normalen calls?
- Zu roofline, libraries, profiling wurde ich absolut garnichts gefragt
- Was ist gather/scatter?
- Beginnt eher als Abgabegespräch, dann wird immer mehr in die Theorie gefragt. Fragen zum Übungsteil waren bei mir in etwa folgende, damit ihr ein Gefühl bekommt worauf ihr euch einstellen könnt:
Am Ende wars ein 3er (ok für die Zeit die ich an Lernaufwand reingesteckt hab, ca 2-3 Tage). Generell kam mir das Ganze aber sehr random vor.
Zur Übungsaufgabe bekommt man kaum Feedback außer am Ende ein "ja da haben ein paar Sachen nicht gepasst", und man weiß eigentlich nicht, wie viel von der Note jetzt die Übung und wie viel die Prüfung war. Generell scheints bei der Übung garnicht so wichtig zu sein, dass sie merken, dass man sich mit den Themen auseinandergesetzt hat, sondern viel mehr um einen hübschen/korrekten Report. Meine Achsenbeschriftungen bei ein paar Grafiken waren aufgrund von copy&paste leider falsch, das wurde zb bekrittelt (seriously, who cares? Hat das irgendeinen lerneffekt?).
Mein reiner sequentieller algorithmus war aus für mich nicht ganz nachvollziehbaren Gründen ineffizienter als die MPI-basierten. Ich bin nicht ganz dahinter gekommen warum, hab aber diverse Spekulationnen aufgestellt (stand auch so in meinem Report). Wurde trotzdem kritisiert, dass ich da mehr hätte reinschauen müssen (obwohl optimieren einer sequenziellen implementierung komplett am Sinn der Übung vorbeigeht, und das Ganze ja auch in keinster Weise gefordert wurde).
Der Theorieteil scheint sich großteils um konkrete algorithmen zu drehen oder um irgendwelche specifics von MPI. Auf großflächiges Verständnis wird scheinbar nicht besonders viel Wert gelegt, oberflächliche Fragen (wie zb LogP/LM oder Roofline zu beschreiben) gabs bei mir keine, was mich etwas überrascht hat.
Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]
noch offen
Zeitaufwand[Bearbeiten | Quelltext bearbeiten]
noch offen
Unterlagen[Bearbeiten | Quelltext bearbeiten]
noch offen
Tipps[Bearbeiten | Quelltext bearbeiten]
noch offen
Highlights / Lob[Bearbeiten | Quelltext bearbeiten]
noch offen
Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]
noch offen