Multicore Programmierung in C++ mit VS 2008 Professional

St3fan

Enthusiast
Thread Starter
Mitglied seit
27.02.2010
Beiträge
276
Hallo
Wir lernen schon seit 1,5 Jahren die Programmiersprachen C/++.

Ein Freund und ich wollten Mal aus Jux einen Benchmark programmieren war ja auch nicht schwer den wenn man in einer Schleife sin, cos, tan, Wurzel.... berechnet dann geht schon was, aber nur auf einen Kern. Da wir in der Schule Dual und Quads haben ist das nicht das was wir erreichen wolten.

Deshalb suche ich eine Bibliothek oder ähnliches welches Methoden zu Multicore Programmierung bereitstellt.
Sollte für AMD und Intel funktionieren.
Super wäre es wenn man wann dynamisch eingeben kann wie viele Kerne oder Threads belastet werden sollen.
Genial wäre es wenn man nichts installieren braucht den in der Schule hab ich keine Rechte... aber das ist nicht entscheidet...

mfg
Stefan
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Deshalb suche ich eine Bibliothek oder ähnliches welches Methoden zu Multicore Programmierung bereitstellt. Sollte für AMD und Intel funktionieren.

Wie stellst du dir das vor? Einfach eine Bibliothek einbinden und 2 Parameter konfigurieren? Wenn das doch so einfach wäre...

Super wäre es wenn man wann dynamisch eingeben kann wie viele Kerne oder Threads belastet werden sollen.

Wenn du das so haben willst, muss du es auch selber entsprechend umsetzen. Die Anzahl der Kerne kannst du noch recht einfach auslesen.

Schau dir am besten das hier mal in Ruhe an.
Let me google that for you

Bitte bedenke auch, dass Multithreading eine reihe von Problemen mitbringt und nicht immer Geschwindigkeitsvorteile bringt. Bei eurem derzeitigen Projekt ist das vermutlich erstmal egal aber für die Zukunft durchaus wichtig.
 
Wie stellst du dir das vor? Einfach eine Bibliothek einbinden und 2 Parameter konfigurieren? Wenn das doch so einfach wäre...
Nein, super wäre es wenn zB.:
Theard1:
{
Funtionsblock
}

Theard2:
{
Funktionsblock
}

Wenn du das so haben willst, muss du es auch selber entsprechend umsetzen. Die Anzahl der Kerne kannst du noch recht einfach auslesen.
Schon aber es wäre einfach genial...

Bitte bedenke auch, dass Multithreading eine reihe von Problemen mitbringt und nicht immer Geschwindigkeitsvorteile bringt. Bei eurem derzeitigen Projekt ist das vermutlich erstmal egal aber für die Zukunft durchaus wichtig.
Das ist mir bewusst möchte es einfach nur so versuchen
 
Zuletzt bearbeitet:
Multithreading ist Betriebssystemabhängig und deshalb individuell verschieden.
Viele Compiler unterstützen allerdings OpenMP für Multiprozessorsysteme. Es könnte sich lohnen, sich die Sache einmal anzusehen.
 
Da hast du mehrere Optionen, die vom Zielsystem (in erster Linie der Software) abhängen.

Ich habe gelernt, mit POSIX-Threads parallele Programme zu komponieren. Das funktioniert sehr gut, setzt aber viel Verständnis der Prozessinteraktion und -kommunikation aus. Und natürlich ein POSIX-kompatibles System. ;) Das, was du willst, geht damit aber ziemlich gut.

Quasi-Standards für abstraktere parallele Programmentwicklung sind heute OpenMP (für C/Fortran) und MPI. Beides sind Schlagworte, zu denen dir google gern weiterhilft. ;)
 
Zuletzt bearbeitet:
In einer der letzten CTs wurden Beispiele gemacht zur Multicore Programmierung, einfach mal im Archiv danach suchen.
 
Es reicht doch eigentlich wenn man mehrere Threads erstellt. Diese werden automatisch vom Betriebssystem auf die Kerne verteilt und du lastest alle gleich viel aus.
 
Danke für die netten Antworten
Werde mir zuerst mal OpenMP ansehen...
 
Es reicht doch eigentlich wenn man mehrere Threads erstellt. Diese werden automatisch vom Betriebssystem auf die Kerne verteilt und du lastest alle gleich viel aus.

Jein. Aus einer Schedulingperspektive sollte das soweit stimmen, das ist schon richtig, aber das Erstellen von mehreren Threads ist nur solange unkompliziert, wie die nicht in irgendeiner Form an gemeinsamen Aufgaben oder mit gemeinsamen Daten arbeiten.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh