Wie kann man multi-threaded parallele Programmierung lernen? [geschlossen]

8
  

Unabhängig davon, wie gut Sie C oder Java programmieren, sollten Sie in Erwägung ziehen, Multi-Thread-Programmierung zu Ihren Fähigkeiten hinzuzufügen.

     

Das sollten Sie NICHT selbst lernen. Es ist viel schwieriger zu lernen als die sequentielle Programmierung. Wenn Sie ein technischer Manager sind, sollten Sie in die Umschulung Ihrer Schlüsselmitarbeiter in Multi-Thread-Programmierung investieren. Sie können auch die Forschungsaktivitäten in parallelen Programmiersprachen (wie die oben aufgeführten) überwachen. Sie können sicher sein, dass Ihre Konkurrenten es werden.

Dies ist ein Zitat aus diesem Artikel . Ich kann mir vorstellen, dass die meisten von uns hier sehr gut darin sind, uns verschiedene Sprachen, Datenstrukturen, Algorithmen usw. beizubringen, und ich erkenne die geistige Verschiebung, die auftreten muss, um die parallele Programmierung richtig zu machen.

Ich lehne die Idee ab, dass man parallele Programmierung nicht "richtig" selbst lernen kann. Also, was ist der verantwortungsvollste Weg, sich Parallelprogrammieren beizubringen? Welche Bücher und andere Ressourcen werden empfohlen?

Bearbeiten: Hier sind einige weitere Details. Ich würde diese hauptsächlich auf das wissenschaftliche Rechnen anwenden, aber ich suchte nach allgemeinem, sprachunabhängigem Material / Ratschlägen. Ich suche auch eine heathy Dosis praktischer Theorie. Stellen Sie sich vor, Sie haben einen ausgezeichneten Entwickler, der Mathematik und Informatik liebt, aber nie einen Kurs über parallele Programmierung besucht hat. Nun stellen Sie sich vor, er hat eine Frist für ein Problem (sagen Sie 1 Jahr), und Sie müssen ihm die Materialien geben, um herauszufinden, ob Parallelisierung hilfreich wäre, und wie man es richtig umsetzt. Welche Ressourcen würdest du ihm geben? So würde ich (und ich hoffe andere Entwickler) daran interessiert sein, Parallelisierung / Multithreading zu lernen.

    
Vince 23.07.2010, 16:51
quelle

4 Antworten

5

Wenn Sie an meinem Arbeitsplatz auftauchten und diese Frage stellten, warf ich ein paar Bücher auf Sie:

Einführung in Parallel Computing und Paralleles wissenschaftliches Rechnen

Ihre Antwort ist vielleicht "das ist nicht das, worüber ich etwas erfahren möchte!" Also komm zurück und sei etwas genauer in deiner Frage und wir werden in der Lage sein, etwas konkreter in unseren Antworten zu sein.

Aber der "verantwortungsvollste" Weg, sich selbst etwas beizubringen, ist der gleiche wie der verantwortungsvollste Weg, sich selbst Programmierkenntnisse beizubringen: ein Problem zu bekommen, einen Werkzeugkoffer zu bekommen, einen Termin zu bekommen und loszubrechen.

    
High Performance Mark 23.07.2010, 17:01
quelle
0

Für Microsoft-Technologie gibt es eine Fülle von Informationen im MSDN Parallel Computing-Portal hier . Sie könnten mit den Getting Started Links beginnen.

    
DOK 23.07.2010 16:58
quelle
0

Dieser Artikel ist im Grunde eine Werbung für Schulungsleistungen. Sie sollten die Meinung eines Verkäufers über den Wert seiner eigenen Produkte mit einer gewissen Umsicht behandeln.

Ich habe keine Ahnung, wie Sie alles andere gelernt haben, was Sie bereits über Computer wissen, aber wenn das für Sie funktioniert, würde ich bei der nächsten Sache bleiben, die Sie lernen wollen.

Ich kann keine sprach- / plattformunabhängigen Bücher empfehlen - ich vermute, dass sie sowieso sehr akademisch sind. Wenn Sie tatsächlich auf .NET sind, dann schreibt Jeff Richter eine Menge guter Sachen über Threading, und ich glaube, dass die dritte Ausgabe seines C # / CLR-Buches (frühere Ausgaben waren exzellent) eine Menge über parallele Programmierung hat.

>     
Will Dean 23.07.2010 17:00
quelle
0

Wenn Sie alles lesen, was Google für die unten stehenden Informationen findet, haben Sie einen guten Start. Angenommen allgemeiner IT-Hintergrund usw. Diese sind nicht sprach- oder betriebssystemspezifisch:

Petersons Algorithmus Atomtest-und-set Kritischer Abschnitt Rendezvous Speicherbarrieren schlossfreie Algorithmen

Der mathematische Hintergrund dafür ist wahrscheinlich Petrinetz.

Lesen Sie Dijkstra.

    
n-alexander 23.07.2010 17:05
quelle