On Jun 20, 2009, at 12:29, Jon Harrop wrote:

> The Task Parallel Library. It uses concurrent wait-free work- 
> stealing queues
> to provide an efficient implementation of "work items" than can  
> spawn other
> work items with automatic load balancing on shared memory machines.  
> Cilk uses
> the same technology (well worth a look if you haven't already seen  
> it!).

I know about Cilk, and I agree that this approach is useful in practice.

> That makes it easy to write efficient parallel algorithms in  
> any .NET language. In
> particular, it can sustain billions of work items (as opposed to  
> thousands of
> threads or processes) and the time taken to spawn is ~30,000x  
> faster than
> forking a process. Extremely useful stuff!

Indeed!

> What are parallel map reduce etc. implemented upon in Clojure?

Java threads, according to the documentation:

clojure.core/future
([& body])
Macro
   Takes a body of expressions and yields a future object that will
   invoke the body in another thread, and will cache the result and
   return it on all subsequent calls to deref/@. If the computation has
   not yet finished, calls to deref/@ will block.

The macro future is used in the implementation of pmap.

Konrad.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to