I wrote: > Nala Ginrut <nalagin...@gmail.com> writes: >> --------------------cut------------------- >> scheme@(guile-user)> ,time (define a (map (lambda (x) (expt x 5)) (iota >> 10000))) >> ;; 0.008019s real time, 0.007979s run time. 0.000000s spent in GC. >> scheme@(guile-user)> ,time (define a (par-map (lambda (x) (expt x 5)) >> (iota 10000))) >> ;; 6.596471s real time, 6.579375s run time. 1.513880s spent in GC. >> --------------------end------------------- > [...] >> Well, is there any example? > > The timings above suggest that, on your machine, the overhead of > 'par-map' is in the neighborhood of 660 microseconds per thread (that's > the total run time divided by 10000 iterations).
BTW, I notice that the overhead of 'par-map' is much less for shorter lists. It's about 9 times faster for lists of length 1000, and about 20 times faster for lists of length 100. --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> ,time (define a (par-map (lambda (x) (expt x 5)) (iota 10000))) ;; 8.293139s real time, 8.281802s run time. 1.310634s spent in GC. scheme@(guile-user)> ,time (define a (for-each (lambda (k) (par-map (lambda (x) (expt x 5)) (iota 1000))) (iota 10))) ;; 0.908630s real time, 0.916819s run time. 0.070018s spent in GC. scheme@(guile-user)> ,time (define a (for-each (lambda (k) (par-map (lambda (x) (expt x 5)) (iota 100))) (iota 100))) ;; 0.330130s real time, 0.418148s run time. 0.045255s spent in GC. --8<---------------cut here---------------end--------------->8--- Mark