02/11/2009 10:09:50 AM EST
Multicore servers will face the demands of developers to replace network/LAN traffic by in-machine messages. So they will have to offer fine tuning tools for process and resource communication and prioritizing which are machine specific and OS native. Please understand that I am sceptical when we talk about Java using these interfaces as long as I do not see a valid USB library - maybe I missed there sth actual but the problems there where impressing me deeply.
I think forking/unforking is only part of the problem and definetely the article does NOT describe a Java specific advantage through technology.
02/11/2009 03:45:21 PM EST
Thanks for the article. It's interesting to see the Java fork/join, and contrast it with the Erlang approach. One question and one comment:
Do you think Fibonacci is a good candidate for parallisation? Essentially you are doing almost double the processing effort to compute any given Fibonacci number, since the previous result is not re-used as per dynamic programming. I.e. the 2x speedup can be gained by using a better sequential implementaion.
Putting aside the issue of the suitability of the Fibonacci example, I think some readers would be interested to see an Erlang solution to a parallel Fibonacci problem.
It uses a parallel map implementation that I've mentioned here: http://21ccw.blogspot.com/2008/05/parallel-quicksort-in-erlang-part-ii.html, which is about 12 lines of code. And the implementaiton (without the threshold support):
[F1, F2] = pmap:pmap(fun p_fib/1, [N-1, N-2]),
F1 + F2.
Which basically maps a function over a list, and the function is evaluated in a separate Erlang process (NOT related to OS processes). To me this is a much simpler (and hence more reliable solution).
United KingdomBenjamin Nortier
Copyright © 1999-2013 BZ Media LLC, all rights reserved. Legal and Privacy
Phone: +1 (631) 421-4158 • E-mail: email@example.com