[gambit-list] threading
Marc Feeley
feeley at iro.umontreal.ca
Fri Mar 10 19:45:16 EST 2017
I considered Ruby… but then learned that MRI only implements green threads…
Thanks for the suggestions for other languages… Perl actually supports threads? Who would have thought!
Can I ask for your help in translating the benchmark program?
The actual computation performed by the “short-delay” procedure doesn’t matter, but it should take about 50 microseconds (in order to isolate the performance related to the implementation of threads).
Marc
;;; Compute fib using threads.
(declare (standard-bindings) (fixnum) (not safe) (block))
(define big 0)
(define (granularity-set! g)
(set! big (expt 11 g)))
(define (short-delay)
(integer-sqrt big))
(define (tfib n)
(short-delay)
(if (< n 2)
1
(let* ((x (thread-start! (make-thread (lambda () (tfib (- n 2))))))
(y (tfib (- n 1))))
(+ (thread-join! x) y))))
(define (range i j)
(let loop ((j (- j 1)) (lst '()))
(if (< j i)
lst
(loop (- j 1) (cons j lst)))))
(define (go n repeat)
(let ((threads
(map (lambda (i) (make-thread (lambda () (tfib n))))
(range 0 repeat))))
(for-each thread-start! threads)
(map thread-join! threads)))
(granularity-set! 0)
(go 15 100)
(granularity-set! 1001) ;; granularity of about 50us per thread
(go 15 20)
> On Mar 10, 2017, at 7:30 PM, C K Kashyap <ckkashyap at gmail.com> wrote:
>
> Super!!!
> Perl 5 may be a good candidate as well.
> Regards,
> Kashyap
>
> On Fri, Mar 10, 2017 at 4:28 PM, Bradley Lucier <lucier at math.purdue.edu> wrote:
> Would a multi-threaded http server test what you want to test?
>
> Brad
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
More information about the Gambit-list
mailing list