HeulThread PFP-Klausur 22.07.2014

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Diese Umfrage wurde während der Migration geschlossen.

  • Habe zumindest mein Namensschildchen gefunden.
  • klausur.par.filter(bearbeitet) == Nil.
  • Die Fehlersuche geht gleich bei mir weiter.
  • Wo war das Petri-Auffang-Netz?
  • Akzeptable Performance durch Arbeitsdiebstahl bei meinem Nachbarn.
  • Deadlock bei LCS, aber konnte durch preemptives MultiThreading behoben werden.
  • Blätter mit optimalem SpeedUp parallel bearbeitet.
  • Ich kam, sah und parallelisierte!

0 voters

HeulThread PFP-Klausur 22.07.2014
Kleine Umfrage zur Klausur heute. Die Antwortmöglichkeiten sind von oben nach unten aufsteigend gut sortiert.

2 Likes

“Perinetze lernt doch keiner, die braucht man doch eh nie.” -.- Srsly?
Kann nur hoffen, dass ich durchgefallen bin - es hätte ne echt gute Note rauskommen können. Aber stattdessen gibts 2 Java-Aufgaben, bei denen bei einer nicht mal der Algorithmus erklärt wird, sondern man den halt “aus den Übungen auswendig kennen muss”.
Finds einfach schade, kann wenig dran aussetzen, weil die Aufgaben halt im Spielraum einer Klausur waren, nur dass halt die einfachste “Sicherheits-Aufgabe” rausgenommen wurde ist echt blöd. Hab am Anfang geschlagene 5 Minuten das Petrinetz gesucht.

2 Likes

Die Petri-Netz Aufgabe hat mir wirklich gefehlt :confused: Die war doch sonst in den vorherigeren Klausuren immer dabei. Ich hab fest damit gerechnet

1 Like

Mensch, da wohl wohl einer schneller. Damit meine Kreativität nicht ganz verloren geht, auch wenn deine stellenweise besser sind :D:

Zur Klausur: Ich habe (wie wohl jeder…) die Petri-Netze tatsächlich vermisst, das sind halt doch immer 6-10 geschenkte Punkte gewesen, auch wenn man den ein oder anderen kleinen Fehler gemacht hat. Die Ankreuzaufgaben aus den früheren Klausuren fand ich definitiv besser, da lässt sich schlichtweg mehr diversifiziertes Wissen abprüfen. Hatte man hier von einer Aufgabe keine Ahnung, so haben eben direkt 2(?) Punkte gefehlt. Dafür waren die Implementierungen recht gut machbar und auch die Fehlersuche war sicherlich deutlich einfacher als in den letzten Jahren, auch wenn ich bei der b) leider nicht auf die doch recht primitive Antwort mit dem synchronized-Block (oder einfach der Änderung des != in ein kleiner/größer-Zeichen) gekommen bin, sondern stattdessen einfach mal auf AtomicInteger gesetzt habe.

Die Scala-Aufgaben habe ich gesehen und habe anfangs tatsächlich ein bißchen Panik bekommen, trotz meiner Meinung nach guter Vorbereitung. Am Ende ging’s dann durchaus, ob’s gereicht hat, sehe ich spätestens heute Nachmittag…

Edit: Was zur Hölle ist eigentlich preemptives Multithreading? Davon hab ich noch nie gehört.

3 Likes

Also ich fand die Klausur schon okay, auf keinen Fall massivst unfair, bloß ein paar Punkte waren suboptimal:

Die neuen Theoriefragen waren prinzipiell okay, allerdings fand ich dass sie im Verhältnis zu den alten mehr Zeit brauchen, und ich war über nur 6 Punkte und nur 3 Fragen etwas überrascht.

Das komplette Fehlen der Petri-Netze fand ich doch sehr überraschend, da die ja eigentlich absolutes Standardwerk waren. Damit hätte ich niemals gerechnet

Die Aufgabe stattdessen, das LCS, fand ich prinzipiell okay, allerdings hat es relativ lange gebraucht bis ich durch das ganze Ding durchgestiegen bin. Als ich es einmal kapiert hatte war es nicht wirklich schwer, aber die Einlesezeit war doch happig.

Der Schreibtischlauf war absolut okay, ich war fast eher überrascht wie viele Punkte der gab.

Und die MonteCarlo und das Scala fand ich absoluten Standard, also gut machbar.

1 Like

Man durfte die Execute Methode doch nicht verändern. Das hatte ich auch als Lösung, bis ich den fettgedruckten Satz gelesen hab :smiley:

Die sind echt gut :smiley:


[quote=jeanorwin]
Die Ankreuzaufgaben aus den früheren Klausuren fand ich definitiv besser, da lässt sich schlichtweg mehr diversifiziertes Wissen abprüfen. Hatte man hier von einer Aufgabe keine Ahnung, so haben eben direkt 2(?) Punkte gefehlt. Dafür waren die Implementierungen recht gut machbar und auch die Fehlersuche war sicherlich deutlich einfacher als in den letzten Jahren, auch wenn ich bei der b) leider nicht auf die doch recht primitive Antwort mit dem synchronized-Block (oder einfach der Änderung des != in ein kleiner/größer-Zeichen) gekommen bin, sondern stattdessen einfach mal auf AtomicInteger gesetzt habe.[/quote]

Die Meinung teile ich sowohl zu den Theorieaufgaben, als auch zur Fehlersuche, siehe mein vorheriger Post.

1 Like

:smiley: Ja, das hat mich tatsächlich mind. 1 Punkt gekostet… scheine mich bei dem 2-Paket-Speedup verrechnet zu haben. (Grumpf, Zahlen zusammenzählen scheint aber auch echt schwer zu sein :D)


Ich hab einfach direkt daneben auf dem Blatt ein bisschen Zwischenrechnungen gemacht =P


pfeif Ich ja eigentlich auch… Muss mich in der Hektik irgendwie vertan haben. Hab aber auch den Fehler gemacht, zwischen den Aufgabe zu switchen, weil ich ohne das Petrinetz halt keine einfache Anfangsaufgabe hatte.
Mit mehr Zeit hätte ich wschl auch die Scala-Aufgaben gescheit lösen können, hab mich dann aber so verrückt gemacht, dass ich von allem nur max. die Hälfte und die dann auch noch falsch bearbeitet hab. Und zwischendrin dann noch Pipelines ausrechnen wollte mein Kopf wohl nicht mehr richtig.


Welche Kreuze waren eigentlich bei der ersten Ankreuzaufgabe richtig? Ich hatte glaube ich nur das Dritte mit Speedup von 1,5… bei der 1,8 hatte ich noch einen Bruch daneben stehen, ich bin mir aber gerade nicht mehr sicheer, welcher es war… war wohl tatsächlich zu doof zum Bruchrechnen in dem Moment. duckundweg

Oh. Dann war’s wohl doch nicht ganz so einfach. :smiley:


Gute Umfrage.

1 Like

Joa ich hab keine Lösung für die Fehlersuche beim CountDownLatch hinbekommen, weil man die execute nicht ändern durfte.

Weiterhin stand da ja dass man nur Zeilen ändern darf und nicht was hinzufügen, deshalb geht ja synchronized Block auch nicht dachte ich. (Mal abgesehen davon das es pervers ist ein CountDownLatch mit nem synchronized zu umschließen… nutzloser Overhead hoch 10)

Ganz unabhängig davon ist das Beispiel halt auch irgendwo Grütze. Wer benutzt der ein CountDownLatch mit Count 2 nur um dann sich selbst ein await() auf Count 1 basteln zu wollen xD


Ich hatte beim 4. Kreuz glaub ich 54/30 = 18/10 = 1,8. Hab aber grad die Zeiten nicht mehr im Kopf, weswegen ich nicht weiss, obs so stimmt ^^
Das Petrinetz hat mir auch gefehlt! Mir fiehlen die alten Multiple-Choice Aufgaben leichter, da man fuer richtige Kreuze auf jeden Fall Punkte bekommen hat und ich bei dieser Klausur bei der a) laenger zum Rechnen gebraucht habe als in den Altklausuren fuer die gesamte 1.
Die Java-Aufgaben und die Fehlersuche fand ich sehr fair und bei Scala stand ich etwas aufm Schlauch und habe foldRight gelesen, aber dann vergessen -.-


mMn 3 und 4


da schein ich wohl der einzige zu sein, der bei der ersten java aufgabe kein bischen verstanden hat was zu tun war


Ich hab beide Speedup-Kästchen gekreuzigt, hat zumindest in der kopfrechnung sinn gemacht.

Ach du kacke, echt nicht? Bin ich mal gespannt was dann die richtige Lösung ist, hatte auch einfach nur „!=1“ in „>=2“ geändert :smiley:

Was anderes, was sollte der Hinweis bei MonteCarlo mit Id = welcher der punkte aus globalCnt genommen werden soll? Das hab ich garnich gecheckt.


damit war gemeint, dass jeder Thread seine Id als Start nehmen soll und dann als step benutzt man die Anzahl der Threads, also so eine Schleife in den Threads:

for (int i = threadId; i < globalCnt; i = i + threads) { ... }

Das stimmt schon, die Aufgabe war eigentlich nur für diejenigen schnell verständlich, die auch die Übung gemacht haben. Allerdings habe ich mir auch bei den bisherigen Klausuren nicht wirklich Gedanken um das gemacht, was da am Ende gefordert war… das hat bei mir immer etwas zu viel Zeit gekostet.

Ich glaube, die Fließband-Stufen ergaben insgesamt 18s, die längste 6s… und jetzt habe ich auch meinen Denkfehler gefunden. -.- 1a) 0 Punkte, Top!