Erlang nodes can communicate over the network if they find each other. You can send a message to any process (differ from OS process) through its Pid – even if the process is on another node.
Although you don't have to know where processes are, it is still up to the erlang programmer to decide which node initially spawns a task on which node as there is no inherent way to make use of multiple nodes , even though they recognize each other & can message-pass between them.
Hence, this project attempts to load-balance the task of spawning tasks across multiple nodes . The steps involved can be isolated into a couple of distinct problems.
1. deciding which node needs to spawn a task
2. communicating across these nodes
3. maintaining a record of nodes, added /removed nodes ,etcThis project in its essence, deals with the first part and the implementation of the message passing begins with the "messenger.erl" program located at http://www.erlang.org/doc/getting_started/conc_prog.html and will be ported to different message-passing, load-balancing and node-information maintenance based on feedback,suggestions ,comments, and further changes inspired by the growing involvement of the erlang community & encouragement from #erlang in particular.
However, since the project is still in its early stages - better clarity & flexibility about which node takes load, but which node gets the result & how to communicate with least latency, is sought for.
For a fault-tolerant and inbuilt version provided within erlang , check the pool module
pool can be used to run a set of Erlang nodes as a pool of computational processors. It is organized as a master and a set of slave nodes and includes the following features:
* The slave nodes send regular reports to the master about their current load.
* Queries can be sent to the master to determine which node will have the least load.
src: http://erlang.org/doc/man/pool.htmlAlso online http://code.google.com/p/bspawner/wiki/HowTo http://code.google.com/p/bspawner/wiki/TODO
Other interesting placeshttp://erlang.org/doc/man/pool.html http://www.tornkvist.org/gitweb?p=mbrain.git;a=summary http://code.google.com/p/plists/ http://www.erlang.org/doc/reference_manual/distributed.html http://eddie.sourceforge.net #erlang More for information , ping ! bosky101 on #erlang and the web.
Copyright © 2013 Black Duck Software, Inc. and its contributors, Some Rights Reserved. Unless otherwise marked, this work is licensed under a Creative Commons Attribution 3.0 Unported License . Ohloh ® and the Ohloh logo are trademarks of Black Duck Software, Inc. in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.