[Haskell-cafe] announce: Glome.hs-0.3 (Haskell raytracer)

Jim Snow jsnow at cs.pdx.edu
Fri Apr 18 16:10:23 EDT 2008


Don Stewart wrote:
> jsnow:
>   
>> A new version of my raytracer is out. ...
>>     
>
> Very impressive. Did you consider cabalising the Haskell code, so it 
> can be easily distributed from hackage.haskell.org?
>
> I note on the website you say:
>
>     "no threading (shared-memory concurrency is not supported by ocaml,
>     in haskell it's buggy)"
>
> Could you elaborate on this? Shared memory concurrency is a sweet spot
> in Haskell, and heavily utilised, so I think we'd all like to know more
> details..
>
> -- Don
>   
The concurrency bug has to do with excessive memory use, and was discussed earlier here on the mailing list (search for Glome).
http://hackage.haskell.org/trac/ghc/ticket/2185


The other problem I had with concurrency is that I was getting about a 
50% speedup instead of the 99% or so that I'd expect on two cores.  I 
figured I'm probably doing something wrong.

I don't have any objection to using cabal, I just haven't gone to the 
trouble to figure it out yet.  Maybe in the next release.


Sebastian Sylvan wrote:
> Not sure what you need shared memory concurrency for in this case as 
> it seems to be a straightforward parallelism problem (i.e. the 
> different threads would be different pixels, there is no sharing needed).

The scene is shared between threads.  (Complex scenes can be quite 
large.)  I'm assuming this is handled as a read-only shared memory 
region or something similar, as one might expect, and is not actually 
copied.

-jim


More information about the Haskell-Cafe mailing list