mladwig at comcast.net
Sat May 25 02:34:06 PDT 2002
Hi. I am new to this stuff and am working through Robert Brown's very helpful
"Engineering a Beowulf-style Compute Cluster", and decided to take his advice
to "ask on the beowulf list before tackling a new parallelization project".
But if this question isn't appropriate here or there is a better place to
ask...please let me know.
A brief description: I started with an algorithm that does something very
slowly. Each individual calculation takes about 1.1 seconds on a .9 Ghz P3.
Every work unit is made up of at best 100k and at worst 3M calculations to
complete; average is 400k. Several work units have to be completed before a
set of results becomes meaningful, and when some day in a real world system
numerous result sets need to be completed in human-friendly time.
In preparation for moving to a parallel execution environment, I have
redesigned the algorithm so that a controller spawns off a number of
threads, each of which takes as input a common to the work unit 1.5MB binary
blob and a unique 50KB binary blob. The threads do not communicate between
themselves. After each thread completes it's calculation, it reports
results, requests another unique 50k block, and performs another calculation.
The controller is typically able to detect early completion of a given work
unit based on the results from every 2000 calculations.
At this stage I'm just trying to get close to a starting point in terms of
cluster and algorithm design. Any help would be greatly appreciated.
More information about the Beowulf