[racket] Places performance

From: Harry Spier (vasishtha.spier at gmail.com)
Date: Fri Mar 15 06:35:13 EDT 2013

On Fri, Mar 15, 2013 at 3:31 AM, Tobias Hammer <tobias.hammer at dlr.de> wrote:

> I see that you left the placement of (time ...) unchanged in your
> with-places code. You should really exclude the (place ..)-call from your
> measurement.
> It is not fair to compare a simple loop vs. the creation of two full
> racket instances + the loop. See my last mail for a 'fairer' version.
I did that to get a feel for the overheads involved  with places.  My
application should be highly parallisable and right now I'm just
experimenting to see how best to do that, which also includes looking at
the overheads in doing things different ways and experimenting on how best
to reduce them.

> In a real program you should recycle places to create them only once (e.g
> one per core) and then send them new work items via channels.
I did in fact do that in one of my experiments setting up a for loop that
used multiple places to process multiple elements of a sequence in parallel
but I found that the overhead of all the place-channel-gets and
place-channel-puts made it very very much slower than a regular for loop
without places. So I'm also trying to refine the overhead in that scenario.

I'm experimenting trying to see how best to get rid of excessive overheads.
 I find I learn best by making all the naive mistakes and then fixing them.

Harry Spier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130315/20f84675/attachment.html>

Posted on the users mailing list.