6.1 System Access Models

7
Parallel Applications
Ultimately, the reason one buys, configures and assembles a Beowulf system is to run applications. Usually, the individuals or organizations assembling such systems already have an application, or suite of applications in mind prior to purchase and installation. In many cases, these applications have already been "parallelized" so that they work effectively and efficiently with one of the available parallel libraries, e.g., MPI or PVM.
In some cases, however, a Beowulf will be the user's first experience with parallel computing. The purpose of this chapter is to offer some guidelines, examples and advice in designing parallel applications suitable for Beowulf systems. This is just one approach to designing parallel applications. It is highly pragmatic and guided by the hardware and software available today on Beowulf systems. Other parallel computer systems have radically different characteristics and can support very different approaches to parallel application development.
7.1 Parallelism
The first step in designing a parallel application for a Beowulf system is to find suitable parallel algorithms. Parallelism is the ability of many independent threads of control to make progress simultaneously toward the completion of a task. Often, we refer to the amount of available parallelism, which is simply the maximum number of independent threads that can work simultaneously. In the rare case that the algorithms intrinsic to the application have little or no parallelism, there is little point in attempting to use a Beowulf (or any other parallel machine, for that matter). Fortunately, such problems are rare, but sometimes procedures simply cannot be parallelized it takes one woman nine months to make a baby, but nine women can't do the job any faster.
Users usually consider Beowulfs because they have an application that is taking too long, or that is too large to run on other available machines. This suggests that there is something in the application space which is large. This is the place to look for parallelism. The large component may be the number of elements in some array or mesh, the size of a database, the size of a parameter space, the size of a task pool, the size of an image, the number of objects that need to be consumed or created, or something else entirely. Except in rare circumstances, these components offer a source of parallelism, and an opportunity to apply Beowulfs (or other parallel computing resources) to the problem. Whatever the large component, it can usually be updated, searched, analyzed, processed, rearranged or manufactured in parallel.

 



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