Oooooooooh, PRETTY!!!!
So for the longest time, I’ve been desiring a beowulf architecture, but setting up the cluster has always been an issue. The bigger issue, however, is thread synchronization. The nice thing about clusters, is you can put them together with whatever crappy machines you have lying around. The not-as-nice thing about clusters is that you tend not to have 20 identical machines lying around.
With the standard MPI solutions, a process is created permanently on a node, typically with a set amount of work to do before exiting or requesting more work. There are some simple techinques you can use to try to sync everything up, and by simple, I mean archaic. You could (though I truly would never recommend this) balance the workload by hand (using arithmetic, God forbid) when developing, timing out each machine and such. There are more sophisticated methods, which I personally would recommend.
Thread Pooling
The basic idea behind this is to create a simple server/client architecture, where the server hosts a data set, and the clients request an element from the set, process it, and return the result. Clients may end up waiting while the servers has no data to be processed.
Data Pooling
This is very similary to thread pooling, but applied to the Genetic Algorithm. Imagine your server as having a population of whatever you’re working on, and the clients occaisionally pull the top few members from the population and working with them, then submitting results back to the population. Since there is always a full population in the server, clients will not hang up waiting for the server to have work for them to do. This offers complete asyncrhonization without delays (except perhaps server overload).
Each of these methods have are heavy on the implementation side, so I’d like to try a cluster-based solution. Tune in next time!
January 7, 2007 at 7:22 am
[...] beowulf clustering is the ease of data sharing and segregation. I’ve discussed previously in GA In Parallel, some more interesting thoughts… that load balancing is a problem with Beowulf clusters, and even with my crazy scheme of Multi-Level [...]
November 9, 2007 at 5:04 am
how did this hybrid solution work for you?
I have a project which is on the other end of massive compute – designing a cluster type for an I/O intense SAN.
This would be Mosix2 (64-bit, 2.6 kernel). Your hybrid idea might be a solution. Concern with a pure, everybody is equal Mosix is the stub retention on the originating node and the call back to the originating node to do the I/O.
This is pure put and fetch small job work. I know that Beowulf was designed for low I/O and distributed computing of large batch data sets.
In your experience, is Beowulf, assuming your MLHybrid, even something I should consider?
April 9, 2008 at 7:00 pm
A Realistic $250K First Year Income Potential
Less than four years ago I was driving this beat-up ‘94 VW with a rusty muffler. Within two years of creating this system I was making more than my doctor, accountant, and attorney COMBINED… while working less than 40 hours a week FROM HOME! Together with my group of leaders we are now seeking qualified entrepeneurs sharein the incredible results of our system.
for more information check this site out….
make money online scams