Cluster Knoten unterschiedliche Ergebnisse?

ddinter
Erstie
Erstie
Beiträge: 15
Registriert: 14. Dez 2011 23:12

Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von ddinter » 4. Feb 2012 01:53

Hallo,

wir haben unser Programm jetzt wohl richtig implementiert.
Allerdings berechnet unser Programm auf den verschiedenen Cluster-Knoten unterschiedliche Ergebnisse:

Knoten 05: falsches Ergebnis im Vergleich zum selben CPU
Knoten 06: richtiges Ergebnis, ~24x Speedup im Vergleich zu der CPU des selben Rechners (loop 100, -cpu 108962 ms, -oclgpu 4628 ms)
Knoten 07: richtiges Ergebnis, ~5x Speedup im Vergleich zu der CPU des selben Rechners (loop 100, -cpu 126162 ms, -oclgpu 27274 ms)
Knoten 08: falsches Ergebnis im Vergleich zum selben CPU, Ergebnis besteht nur aus "0"ern

Haben andere Gruppen ähnliche Erfahrungen / Probleme?

Sind uns nicht sicher, ob unsere Implementation korrekt ist. Wir haben aber prinzipiell auf barriers etc geachtet und haben wie oben beschrieben auf zwei der Teachingnodes das richtige Ergebnis im Vergleich zur CPU Lösung (mit py-Comparator verglichen).

JulM
Mausschubser
Mausschubser
Beiträge: 47
Registriert: 1. Okt 2009 19:25

Re: Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von JulM » 4. Feb 2012 05:00

ddinter hat geschrieben:Hallo,

wir haben unser Programm jetzt wohl richtig implementiert.
Allerdings berechnet unser Programm auf den verschiedenen Cluster-Knoten unterschiedliche Ergebnisse:

Knoten 05: falsches Ergebnis im Vergleich zum selben CPU
Knoten 06: richtiges Ergebnis, ~24x Speedup im Vergleich zu der CPU des selben Rechners (loop 100, -cpu 108962 ms, -oclgpu 4628 ms)
Knoten 07: richtiges Ergebnis, ~5x Speedup im Vergleich zu der CPU des selben Rechners (loop 100, -cpu 126162 ms, -oclgpu 27274 ms)
Knoten 08: falsches Ergebnis im Vergleich zum selben CPU, Ergebnis besteht nur aus "0"ern

Haben andere Gruppen ähnliche Erfahrungen / Probleme?

Sind uns nicht sicher, ob unsere Implementation korrekt ist. Wir haben aber prinzipiell auf barriers etc geachtet und haben wie oben beschrieben auf zwei der Teachingnodes das richtige Ergebnis im Vergleich zur CPU Lösung (mit py-Comparator verglichen).
also ich hab gerade mal geschaut, ich habe das selbe Problem. Also auf jeden Fall auf Knoten 06 habe ich kein richtiges Ergebnis, dafür aber einen sagenhaften Speed-Up. Bei Knoten 07 berechnet sowohl cpu als auch gpu das gleiche Ergebnis, habe dort nur eine Abweichung von ~0,001%. Ich vermute mal das irgendwas hier momentan nicht stimmt...
Ich habe das Programm bis jetzt auf 3 verschiedenen Systemen getestet und da lief es überall korrekt.

bttf
Mausschubser
Mausschubser
Beiträge: 76
Registriert: 9. Nov 2011 14:04

Re: Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von bttf » 4. Feb 2012 14:36

Also unser Programm rechnet auf allen vier Knoten richtig, allerdings ist es auf node07 total lahm mit 2.6fachem Speedup, während es auf den anderen drei Knoten einen Speedup von 15,5fach bringt. Komisch....

-py-
Windoof-User
Windoof-User
Beiträge: 27
Registriert: 18. Mär 2011 00:27

Re: Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von -py- » 4. Feb 2012 19:07

Dass Knoten 07 langsamer ist, hat Prof. Goesele in der Vorlesung erwähnt, wenn ich mich recht erinnere. Bei uns verlangsamt sich das Programm auf node07 sogar auf 390 ms, während es bei den anderen drei Knoten 65 ms braucht. Das Ergebnis ist bei uns aber auf allen Knoten richtig.

ddinter
Erstie
Erstie
Beiträge: 15
Registriert: 14. Dez 2011 23:12

Re: Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von ddinter » 5. Feb 2012 14:49

War wohl noch ein Fehler in unserem Programm, das scheinbar nicht richtig funktionierte. Komisch ist nur, dass es auf zwei Nodes ging. Dann hatte er scheinbar noch irgendwas im Cache/Speicher liegen (zufällig die richtige Lösung) oder sowas in der Art.. naja OpenCL ist schon irgendwie rätselhaft.

Jetzt haben wir aber auf allen vier Nodes und auf anderen PCs dasselbe (richtige) Ergebnis. Nur der Knoten 7 ist definitiv um einiges langsamer als die drei restlichen.

Tribune
Erstie
Erstie
Beiträge: 16
Registriert: 23. Okt 2009 12:12

Re: Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von Tribune » 5. Feb 2012 17:45

Ich habe aktuell ein ähnliches Problem, es scheint aber unabhängig von den Nodes zu sein.
Heute morgen habe ich das Programm ausgeführt und teils völlig unterschiedliche Werte erhalten. Auch nach mehreren Versuchen keine Besserung. Nach 2 Stunden habe ich es dann erneut laufen lassen, da lief es bei mehreren Durchläufen mit den korrekten Ergebnissen (insg. 10 mal getestet). Ein paar Stunden danach wieder das gleiche Dilema mit falschen Werten???

Ich kann mir das absolut nicht erklären, wieso es teils läuft und dann an den selben Stellen in der Matrix völlig andere Werte liefert?

Die benutzten lokalen Arrays werden genullt, das sollte also nicht das Problem sein.

Jan.R
Nichts ist wie es scheint
Beiträge: 23
Registriert: 19. Okt 2006 17:34

Re: Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von Jan.R » 5. Feb 2012 19:58

Hallo Zusammen,

die Problematik mit den unterschiedlichen Ergebnissen hatten wir auch.
Ich kann nur einen Lösungsansatz geben aber nicht garantieren ob es bei euch daran liegt.

Ich weiß mittlerweile wie mein Fehler entstanden ist:
Ich habe lokal an meinem PC entwickelt und die Kernel Datei ocl...cl per vi auf der node x editiert.
Beim Kopieren per Copy und Paste direkt in Putty hat es einen Übertragungsfehler gegeben.
Ergebnis mein Programm lief auf manchen Nodes auf anderen nicht.


Lösung:
Ich habe den kompletten Code nochmal in eine neue Datei geschrieben (per Tastatur) direkt auf der node x.
Mit dieser Datei hatte bisher ich keinen einzigen Fehler mehr, xfach auf jeder node getestet.
Ich kann das Problem hier immer wieder nachstellen da ich die "defekte" Datei behalten habe.
Verwende ich diese gibt es immer noch nur "manchmal" Berechnungsfehler.

Ich hoffe geholfen zu haben.
Den Code nochmal abzutippen ist ja schnell getan und es reicht vielleicht noch bis zur Abgabe.

Gruß
J.Rehbein
Dear Lord, please grant me the ability to punch people in the face over standard TCP/IP.

bttf
Mausschubser
Mausschubser
Beiträge: 76
Registriert: 9. Nov 2011 14:04

Re: Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von bttf » 5. Feb 2012 20:23

Also ich hab die Dateien immer mit dem scp Befehl von den RBG Rechnern auf die Cluster kopiert. Hat immer prima funktioniert.

Was ich mir noch vorstellen könnte als Fehlerquelle, wenn es nicht der Code selber ist der was flasches macht, ist, dass vielleicht irgendwo im Code auf etwas zugegriffen wird, während noch nicht alle Threads mit schreiben fertig sind. Ähnliches war bei uns auch der Fall. Der Code war von der Logik her richtig, das Programm funktioniert aber erst, nachdem noch hier und da noch ein barrier oder mem_fence eingefügt war. Interessanterweise klappt es jetzt nur, wenn an einer bestimmten Stelle mem_fence steht. Ein barrier wollte da nicht funktionieren. An einer anderen Stelle war es genau andersrum. Fand ich persönlich komisch, aber Hauptsache es läuft :twisted:

Also guck mal nach, ob du irgendwo in den Speicher schreibst, ohne danach zu syncronisieren. Daran könnte es eventuell liegen.

philipp_m
Mausschubser
Mausschubser
Beiträge: 99
Registriert: 4. Dez 2010 18:10

Re: Cluster Knoten unterschiedliche Ergebnisse?

Beitrag von philipp_m » 5. Feb 2012 23:14

Noch ein kleiner Hinweis an die, die manchmal richtige Ergebnisse und manchmal nicht bekommen:
Auch wenn die Datei geschrieben wird (d.h. keine Fehler) werden nur die Einträge überschrieben, die auch wirklich gesetzt sind. D.h. wenn euer results-Array nach der OCL-Berechnung leer ist und ihr zuvor das Ergebnisfile per -cpu habt berechnen lassen, dann findet ihr nach der OCL-Berechnung immer noch das richtige Ergebnisfile in eurem Ordner da keine der Werte überschrieben wurden, obwohl euer OCL-Code eigentlich gar nichts berechnet hat.

Antworten

Zurück zu „Archiv“