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
#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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren