Haskell parMap und Parallelität

9

Ich habe eine Implementierung von Conways Spiel des Lebens. Ich möchte es beschleunigen, wenn möglich durch Parallelität.

%Vor%

Bei der Profilerstellung machen Nachbarn 6,3% der aufgewendeten Zeit aus, und während ich klein war, erwartete ich eine merkliche Beschleunigung, indem ich sie parallel abbildete.

Ich habe mit einer einfachen Funktion

getestet %Vor%

und kompilierte die parallele Version als

%Vor%

und lief es als

%Vor%

es stellt sich heraus, dass die parallele Version langsamer ist. Verwende ich ParMap hier falsch? Ist das überhaupt ein Fall, wo Parallelität verwendet werden kann?

    
cdk 01.09.2012, 04:15
quelle

1 Antwort

2

Ich glaube nicht, dass Sie richtig messen. Ihr parLife ist tatsächlich ein bisschen schneller als life . In der Tat, auf meinem Rechner (Phenom X4, 4-Core,) dauert der erstere etwa 92,5% der Zeit, die letzteres tut, was in Anbetracht, dass Sie sagen, dass Sie nur eine Verbesserung von 6% erwarten, ist ziemlich gut.

>

Was ist Ihr Benchmarking-Setup? Haben Sie versucht, criterion zu verwenden? Folgendes habe ich getan:

%Vor%

Kompiliert mit ghc --make -O2 -o bench und lief mit ./bench -o bencht.hmtl +RTS -N3 .

Hier ist das detaillierte Ergebnis des Berichts .

    
Aleksandar Dimitrov 01.09.2012, 13:57
quelle