Thanks Robert,<br><br>Yes I am familiar with Amdahl's law. That said, it's not true that all writes need to be serialized; it's a binary tree, and unless the modifications happen to be to the same node, there's no reason why they need to be serialized.<br>
<br>A database would solve the problem kinda; but that's like using a steamroller to crack a nut. What I'm looking for a lightweight option that could temporarily store data shared between threads, and would scale well as the number of threads accessing/modifying this structure increases. I know how to solve this problem in C (writing a concurrent binary search tree that scales well), but since I'm new to Erlang I was unsuccessful trying to solve this problem in Erlang.<br>
<br>Thanks again,<br>/Fuad<br><br><div class="gmail_quote">On Mon, Jul 7, 2008 at 8:22 PM, Robert Raschke <<a href="mailto:rtrlists@googlemail.com">rtrlists@googlemail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Fuad,<br>
<br>
a shared data structure is going to be the major limiting factor of<br>
your parallelisation. Are you aware of Amdahl's Law (e.g.,<br>
<a href="http://home.wlu.edu/%7Ewhaleyt/classes/parallel/topics/amdahl.html" target="_blank">http://home.wlu.edu/~whaleyt/classes/parallel/topics/amdahl.html</a>)?<br>
<br>
I must admit I have not read your code. But at least all the writes to<br>
your shared data structure have to be serial in order to ensure its<br>
integrity. So that is an immediate limiting factor. You cannot get<br>
faster than all the serialised writes to your structure.<br>
<br>
One of the easiest shared data structures you can use is a database.<br>
It'll handle all the horrible details of transactions for you. In<br>
Erlang, you can have a look at Mnesia for that.<br>
<br>
Robby<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br>