24.02.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!