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 -~----------~----~----~----~------~----~------~--~---