Wie soll ich das Erstellen und Programmieren von HPC-Systemen lernen?

16

Ich bin in einem Bereich tätig, der nicht unbedingt viel HPC-Arbeit leistet, und wenn er auftritt, ist er oft das Ergebnis von Forschern aus anderen Bereichen, die nach neuen Anwendungen für ihre Methoden und dergleichen suchen. Dies bedeutet in erster Linie, dass es im Laufe des Studiums nie wirklich eingeführt wird oder in Workshops, Seminaren und Ähnlichem viel zur Sprache gebracht wird - es ist möglich, die gesamte Karriere zu machen, ohne es zu brauchen.

Gleichzeitig könnte ein Großteil meiner Arbeit davon profitieren, die mir zur Verfügung stehenden HPC-Ressourcen besser zu nutzen - meist in Form schön paralleler Monte-Carlo-Simulationen.

Mein Problem ist es, Ressourcen zu finden , mit denen ich lernen kann, wie man mit Clustern, MPI usw. umgeht. Und die guten von den schlechten zu trennen, da ich nicht viel weiß.

Haben Sie Vorschläge für Bücher, die sich entweder mit der Programmierung auf diesen Systemtypen oder mit der Einrichtung und Ausführung sehr bescheidener eigener HPC-Setups befassen?

Fomite
quelle
Sollte dies so etwas wie ein "Big List" -Tag haben?
Shuhalo
@ Martin: nein. Es sollte Antworten von Leuten geben, die dies tatsächlich getan haben und wissen, wovon sie sprechen, und keine gigantische Liste von allem, was möglicherweise in Beziehung steht. Der Titel wurde geändert, um dies widerzuspiegeln.
Shog9

Antworten:

13

Schauen Sie sich die HPC University an . Insbesondere der Bereich Ressourcen , der Dinge wie enthält

und vieles mehr.

Es gibt viele Hochschulprogramme, die Kurse in HPC enthalten . Als Beispiel mein eigenes Programm umfasst Kurse in

  • Hochleistungsrechnen (2 Semester)
  • Paradigmen der parallelen Programmierung
  • Wissenschaftliche Softwareentwicklung
  • GPU- und GPGPU-Programmierung

sowie eine Vielzahl von Kursen in wissenschaftlichem Rechnen und numerischer Analyse.

David Ketcheson
quelle
4

Ich persönlich habe die Erfahrung gemacht, dass HPC ein so breites Spektrum an Fähigkeiten erfordert, dass es sehr schwierig ist, dies in nur einem Buch, Rezept oder Universitätskurs zu tun. Bedenken Sie, dass es bei HPC nicht darum geht, große Maschinen zu programmieren oder einen Cluster aufzubauen, sondern vielmehr um die Lösung großer wissenschaftlicher Probleme am Puls der Zeit.

Ich bin nicht sicher, ob alle zustimmen würden, aber ich denke, dass eine Liste der Bereiche, die mit HPC zu tun haben, Folgendes sein könnte:

Jeder dieser Bereiche ist immens groß und es gibt so viel Wissen, dass es schwierig ist, alles in den Griff zu bekommen, bevor man versucht, etwas zu tun!

In meinem Fall bin ich von einer Ecke des Ingenieurwesens ausgegangen und habe langsam Erfahrung und ein Netzwerk für die Zusammenarbeit aufgebaut. Am Anfang hatte ich nur ein Problem mit Ingenieurwissenschaften / angewandter Mathematik, das ich lösen wollte. Von dort wechselte ich zum Programmieren, um mehr Leistung über leistungsfähigere Computer zu erhalten, zur numerischen Analyse, zu fortgeschrittenen Algorithmen, zu parallelen Computern, zu parallelen Algorithmen zu noch größeren Computern, zu einem vollständigeren wissenschaftlichen Modell und schließlich zu einem neuen Problem und wiederholte sich. Wenn ich zurückblicke, war der Versuch, mein erstes Problem zu verstehen und zu lösen, die Grundlage für meinen Studienplan. Ein Vorgesetzter, der Sie auf dem richtigen Weg hält, hilft auch sehr, andernfalls achten Sie darauf, Ihr Endziel nicht aus den Augen zu verlieren (in meinem Fall war dies das wissenschaftliche Problem, das ich zur Hand hatte).

Wenn ich eine Sache nennen muss, die auf dem HPC-Weg wirklich einen Unterschied macht, war es, Leute aus anderen Bereichen zu treffen, Ideen auszutauschen und das verteilte Wissen der Community zu nutzen. Es ist auch wichtig, keine Angst davor zu haben, offen naiv zu sein und alberne Dinge zu tun. Die ersten Schritte sind immer schwierig und die wichtigsten!

fcruz
quelle
2

Dies ist mein Plan, um mir im kommenden Frühjahr einige HPC-Grundlagen beizubringen. Ich bin seit anderthalb Jahrzehnten Entwickler und arbeite ausschließlich mit Microsoft-Technologien. Ich bin auch Student, daher kann ich über die MSDN Academic Alliance Software kostenlos beziehen(Ihr Profil zeigt an, dass Sie ein Doktorand sind. Überprüfen Sie daher, ob Ihre Schule teilnimmt.) Der limitierende Faktor ist, Platz für Dinge zu Hause zu schaffen. Mein Büro / den / ManCave hat bereits eine Reihe von Computern, so dass ich bereits einige Sachen testen kann. Windows Server 2008 HPC ist in einigen verfügbaren Paketen aufgeführt, aber es schien im letzten Semester von der herunterladbaren Software meiner Schule verschwunden zu sein ("Cluster Compute Pack" ist ein Add-On für Server 2003, während Server 2008 HPC mit einer abgespeckten Version geliefert wird von Server 2008 müssen Sie mit ccp nicht benötigte Dienste deaktivieren.

Meine geplante Topologie ist der "SOA-fähige Cluster", das vierte Bild auf dieser Seite (klicken Sie auf die kleinen Quadrate unter dem Hauptbild). Ich habe bereits Active Directory und einige andere Server eingerichtet. Daher denke ich darüber nach, 4 billige Dell Small Form Factor-Computer von eBay zu beziehen (Dell 655 SFF wird anscheinend für 100 bis 200 US-Dollar ausgeführt). Da ich nur versuche, etwas zu lernen, brauche ich vermutlich nur einen "Kopfknoten", einen "Maklerknoten" und 2 "Rechenknoten" und ein paar freie Ethernetkarten, um zu sehen, was der private und der Anwendungsbus (von diesem Bild aus) ) tun. Die MSDNAA-Lizenz erlaubt bis zu 16 Rechenknoten, was weit mehr ist, als ich suche.

Ich habe Beowulf Cluster Computing mit Windows gelesen und ich glaube, ich habe eine Idee, was ich für Ideen im Büro habe (es gibt eine Linux-Version des Buches, aber ich habe 0 Linux-Kenntnisse / -Plattformen) zu Hause - mach was für dich richtig ist). Es gibt viele große Cluster im Büro , aber sie sind bereits überfüllt, und es ist sehr schwierig, Zeitfenster mit dem Titel "Ich möchte / muss X lernen" zu erhalten. Es wird bereits erwartet, dass man das Zeug kennt, bevor man Jobs einreichen kann.

Tangurena
quelle