6.3 Cloning Nodes

7.2.7 Beowulf Systems and Choices of Parallelism
Communication networks in Beowulf systems have relatively long latencies and modest bandwidths. This argues for use of large-grain size algorithms with low ratios of surface area to volume, resulting in favorable ratios of communication to computation. Furthermore, Beowulf systems have relatively large latencies equal to tens of thousands of processor cycles or a few thousand bytes of network bandwidth. Investing more in hardware, e.g., Myrinet, can reduce these overheads by an order of magnitude or more, but even so, latency tolerant and bandwidth frugal algorithms will still be necessary. As with most parallel computing systems, regular and/or asynchronous problems are easier to implement than irregular and/or synchronous ones, but Beowulfs are not dramatically different from other parallel computers in this regard.
Once the fundamental issues of the existence of sufficient parallelism have been addressed, tuning applications for Beowulf consists primarily of minimizing communication and tolerating latency. While these same issues are important for the majority of parallel computing platforms, both commercial and non-commercial, loosely coupled Beowulf systems make it particularly necessary.
7.3 Process-level Parallelism
Beowulf systems are particularly well suited to, and may easily exploit process-level parallelism. That is, parallelism that is exposed by running multiple, independent processes. When applicable, process-level parallelism is often the easiest way to achieve speedup in parallel computation. It's so easy, in fact, that such tasks are often referred to disparagingly as "embarrassingly parallel." The only requirement for process-level parallelism is that there already exist a sequential code or codes that must be run many times. Parallel execution can be achieved by straightforward use of the standard remote execution command, rsh. If the process pool is large enough, then process-parallel applications can self-schedule and automatically load-balance across a Beowulf system.
7.3.1 Example: Ray Tracing Animation
Animation rendering is an excellent example of process-level parallelism. Fortunately, a well-optimized and extremely powerful rendering code already exists and is freely available for Linux, and hence Beowulf. The "Persistence of Vision" ray

 



How to Build a Beowulf
How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (Scientific and Engineering Computation)
ISBN: 026269218X
EAN: 2147483647
Year: 1999
Pages: 134

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net