paralleles programmieren in c++?

Gast #3998900
Lesenswert?
• ▲
▼
Kann man in c++ nicht auch irgendein klassen-framework basteln, dass 
paralleles programmieren vereinfacht. bzw. es dann so einfach macht wie 
das hier:

http://concurrency.cc/

ftp://ftp.cs.kent.ac.uk/people/staff/phw/.1011-old/cpa-2011-pdfs/10-jaco 
bsen.pdf

http://christian.lyderjacobsen.org/publications/pdfs/concurrent-event-driven-programming-in-occam-pi-for-the-arduino-slides.pdf
Gast #3998912
Lesenswert?
• ▲
▼
Problem ist eher, dass es 1000 inkompatible Klassen-Framework gibt, die 
auch noch inkompatibel zur Stl sind. Jedes Framwork für sich alleine 
währe je einfach zu benutzen.

P.S. Die C++ Programmieren konnen sich ja nicht mal auf 
Groß/Kleinschreibung der Substantive einigen. Wie wollt ihr euch auf ein 
einfach zu benutzendes Framework einigen?
#3999024
Lesenswert?
• ▲
▼
Messheini schrieb:
> Kann man in c++ nicht auch irgendein klassen-framework basteln,

Das System (mehr als ein Framework) heißt OpenMP und gibt es für C, C++ 
und Fortran.

Es ist allerdings, sagen wir mal, zur Lösung echter Probleme gedacht, 
nicht für irgendein Arduino-Kindergarten rumgemache.

> paralleles programmieren vereinfacht. bzw. es dann so einfach macht wie
> das hier:

Ach je. Also das übliche "Wasch mich, aber mach mich nicht nass.".
(Firma: guloshop.de) #3999027
Lesenswert?
• ▲
▼
Hannes Jaeger schrieb:
> Das System (mehr als ein Framework) heißt OpenMP und gibt es für C, C++
> und Fortran.

OpenMP ist eine ausgeklügelte Sache; es ist in erster Linie dazu da, 
seriell geschriebene Programme zu "parallelifizieren", fast ohne am Code 
etwas zu ändern.

Gewinnbringender ist es aber wahrscheinlich, gleich vom Algorithmus her 
einen parallelen Ansatz zu wählen. Für C/C++ kommen dazu außerdem in 
Frage: pthread und MPI.
https://de.wikipedia.org/wiki/Native_POSIX_Thread_Library
https://de.wikipedia.org/wiki/Message_Passing_Interface
Gast #3999200
Lesenswert?
• ▲
▼
Man muss sich halt auf das einlassen, was die verwendeten Frameworks 
benutzen.

War schon nerfig genug, QMutexLocker und pthread_mutex unter einen Hut 
zu bringen. Dazu dann noch die selbstgebastelten Lösungen der Libraries. 
Jetzt kommt auch noch std::mutex dazu.

Es gibt einfach zu viel.
#3999224
Lesenswert?
• ▲
▼
Wie von Herrn Wachtler schon angesprochen, bringt der aktuelle 
Sprachstandard C++11 eine brauchbare Unterstützung für die klassische 
Parallelprogrammierung mit:
http://de.cppreference.com/w/cpp/thread
http://baptiste-wicht.com/posts/2012/03/cpp11-concurrency-part1-start-threads.html
http://en.cppreference.com/w/cpp/thread/lock_guard
http://de.cppreference.com/w/cpp/thread/condition_variable

Aber auch Futures/Promises und sonstige Unterstützungen für "mach mal 
eben nebenbei" ist enthalten:
http://de.cppreference.com/w/cpp/thread/future
https://solarianprogrammer.com/2012/10/17/cpp-11-async-tutorial/


Wenn man sich eher für das ebenfalls schon angesprochene OpenMP 
interessiert, dann kann ich das folgende Buch nur wärmstens empfehlen:
http://www.amazon.de/OpenMP-Informatik-Fokus-Simon-Hoffmann/dp/3540731229/ref=sr_1_1?s=books&ie=UTF8&qid=1423128532&sr=1-1&keywords=OpenMP

Aber auch der Netzauftritt von OpenMP bietet schon gute Einstiegshilfen:
http://openmp.org/wp/resources/

Ansonsten gibt es da auch ganz neu OpenACC, welches die 
Parallelprogrammierung für GPU's und Mehrkern-CPU's unter einem Hut 
bringen will:
http://www.openacc-standard.org/

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.