Parallel Processing: A KISS Approach - University of North Dakota
Parallel Processing: A KISS Approach - University of North Dakota
Parallel Processing: A KISS Approach - University of North Dakota
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Obviously, the development <strong>of</strong> scientific simulation and modeling s<strong>of</strong>tware is a very<br />
complex task. Fortunately, many scientific simulation and modeling tasks intended for<br />
execution on a HPCC can be represented by the interacting peer paradigm. Therefore, I<br />
will use the <strong>KISS</strong> approach to describe the development <strong>of</strong> two common HPCC s<strong>of</strong>tware<br />
architectures, have provided code examples for both architectures, and the associated<br />
documentation. I have also provided a utility for implementation <strong>of</strong> a special class <strong>of</strong><br />
HPCC problem and have provided the associated documentation.<br />
2. Background.<br />
Before we can delve into the s<strong>of</strong>tware development process we must have a basic<br />
understanding <strong>of</strong> the different computing platforms that exist, the intraprocess<br />
communication requirements, and the intraprocess management styles that are common.<br />
2.1. High performance computing platforms.<br />
Each platform type requires the developer to abide by a particular set <strong>of</strong> design criteria<br />
and may put limitations on the s<strong>of</strong>tware’s performance that the s<strong>of</strong>tware developer must<br />
understand. In keeping with the <strong>KISS</strong> approach, we will briefly review only 2 classes <strong>of</strong><br />
platforms:<br />
• The first class is the classic “supercomputer.” A multiple CPU shared memory<br />
platform. Supercomputers tend to be expensive due to extreme memory<br />
bandwidth requirements. However, supercomputers are very flexible and the<br />
s<strong>of</strong>tware development is much less constrained.<br />
• The second class includes the cluster, Network Of Workstations (NOWs), or<br />
GRID. Clusters are much less expensive than supercomputers because they use<br />
commodity personal computers linked together with commodity networking.<br />
However, clusters cannot deliver the level <strong>of</strong> performance <strong>of</strong> a supercomputer and<br />
have more s<strong>of</strong>tware development design constraints. Yet, for many scientific<br />
problems, clusters provide an affordable way to achieve high performance<br />
computing. Since the Computational Research Center’s High Performance<br />
Computing Cluster is a cluster, we will assume this class <strong>of</strong> machine for all<br />
s<strong>of</strong>tware development covered by this tutorial.<br />
To make the best use <strong>of</strong> a cluster, the researcher must be able to spread their<br />
workload across the different computers (we will refer to the individual<br />
computers making up a cluster as nodes) making up the cluster. It is this<br />
parallelism that achieves high performance computing. However, when<br />
developing an application for a cluster, the communication costs associated with<br />
having to spread the computations across many different nodes and the<br />
synchronization <strong>of</strong> the computations across those different nodes introduces<br />
several s<strong>of</strong>tware design constraints that are unique to clusters.<br />
4