pthreads und Leistung der Standardallokatoren von GNU-C++

25/12/2010 - 18:00 von JURKSCH | Report spam
Hallo,

in einem Programm, das recht hàufig kleinere std::vector-Instanzen
erzeugen und vernichten muß, habe ich eine Aufteilung der Aufgaben auf
mehrere Threads via boost unternommen. Die Einzelthreads sind nur
lose gekoppelt, d.h. nur das Ablegen ihrer Ergebnisse bedarf eines
Mutex. Dennoch _steigt_ die Rechenzeit mit Zunahme der Threadzahl, die
aber nie die Zahl der Hardwarecores übersteigt.
Sind die Standardallokatoren von std::vector in einer Multithreading-
umgebung eventuell die Ursache für den Leistungseinbruch?

Ein frohes Weihnachtsfest
Hermann
 

Lesen sie die antworten

#1 Achim Peters
25/12/2010 - 19:39 | Warnen spam
Hermann Jurksch wrote:
in einem Programm, das recht hàufig kleinere std::vector-Instanzen
erzeugen und vernichten muß, habe ich eine Aufteilung der Aufgaben auf
mehrere Threads via boost unternommen. Die Einzelthreads sind nur
lose gekoppelt, d.h. nur das Ablegen ihrer Ergebnisse bedarf eines
Mutex. Dennoch _steigt_ die Rechenzeit mit Zunahme der Threadzahl, die
aber nie die Zahl der Hardwarecores übersteigt.



Wieso "dennoch"? Das zeigt doch, dass Du mit mehr Threads einen höheren
Durchsatz schaffst, oder was meinst Du mit "Rechenzeit"?

Bye
Achim

Ähnliche fragen