Februar 2013
Prüfer: Dr. Ronald Veldema
Beisitzer: Dipl.-Inf. Georg Dotzler
Während der Prüfung herrschte eine angenehme Atmosphäre. Für die Beantwortung schwieriger Fragen darf man sich ruhig auch kurz etwas Zeit zum Nachdenken nehmen; es muss also nicht auf jede Frage sofort eine Antwort folgen. Der Prüfungsstoff orientierte sich gefühlsmäßig an den Übungsblättern sowie den Programmier-Hausaufgaben, dazu kamen ein paar Transferfragen.
Q: Warum sollte man sich für parallele Algorithmen interessieren?
Q: Speedup? Gesetz von Amdahl?
Q: Wie kann man Tiefensuche/Breitensuche parallel implementieren?
Q: Schachbrett: Wie kann man einen optimalen Zug mit einer NDTM finden?
Q: Aufwand dieses NDTM-Algorithmus?
Q: Wir greifen mit Linda auf ein Bankkonto zu: Was ist, wenn man parallel von zwei Geldautomaten Geld abheben will?
Q: Wie funktioniert der Ticketing-Algorithmus?
Q: Wir haben ein sortiertes Zahlenarray: Suche die 5
Q: Jetzt haben wir ein unsortiertes Zahlenarray: Suche Median
Q: Queue (lockfrei)
Q: Wir wollen das Sieb des Eratosthenes parallelisieren, wie könnte man das machen? Wie ist der Aufwand?
Q: Supermarkt, Datamining mit Output Partitioning: Wir wollen die Produkte, die am öftesten zusammen gekauft wurden
Q: Gegeben sind zufällige Punkte mit zufälligen Kanten. Wie finden wir alle Komponenten?
Q: Gegeben ist folgender Code:
for i = ...: a[i] = b[i + 1] * c[i * 2]
Dieser Code soll vektorisiert werden. Was ist überhaupt Vektorisieren?
for i = .../4: a[i * 4 + 0] = b[i * 4 + 1] * c[(i * 4 + 0) * 2] a[i * 4 + 1] = b[i * 4 + 2] * c[(i * 4 + 1) * 2] a[i * 4 + 2] = b[i * 4 + 3] * c[(i * 4 + 2) * 2] a[i * 4 + 3] = b[i * 4 + 4] * c[(i * 4 + 3) * 2]