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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 2: CRCRAM<br />
CRCRAM was designed for the embarrassingly parallel situation. Specifically, a situation<br />
where you have many independent data files (files that can be processed independently <strong>of</strong><br />
each other) and where you have an existing program to process those individual data<br />
files.<br />
Using parameters specified in the CRCRAM.ini file (see #2 below), CRCRAM scans the<br />
directory containing the data, builds a list <strong>of</strong> data files to process, and automatically load<br />
balances the processing across the nodes requested. As each data file is processed the<br />
resulting output is saved to a new file whose name is derived from the input file name<br />
with a second extension appended on (the idea is to make it easy to track which result<br />
came from which input). Therefore, if your input file is named test1.data, the resulting<br />
output file will be named test1.data.something (where the “something” is specified in<br />
your CRCRAM.ini file).<br />
In the remainder <strong>of</strong> this document, I will work through an example showing how to set up<br />
and use CRCRAM:<br />
1. Changes to .bash_pr<strong>of</strong>ile:<br />
The command language interpreter is the interface between the user and the operating<br />
system. The command language interpreter executes commands read from standard<br />
input or from a file and sets paths to commonly used utilities and libraries. Since most<br />
accounts on Shale have Bash set as their default command language interpreter, I will<br />
use Bash in the example. As with most command language interpreters, Bash gets<br />
user configurable parameters from a .pr<strong>of</strong>ile (pronounced “dot pr<strong>of</strong>ile”) file.<br />
However, with Bash it’s a .bash_pr<strong>of</strong>ile (pronounced “dot bash pr<strong>of</strong>ile”) file.<br />
Note that the .bash_pr<strong>of</strong>ile file has a period (the “dot”) for its first character<br />
which makes it invisible to “ls” (use “ls –la” to see it). The intent <strong>of</strong> the leading<br />
“.” is to hide the file from normal use.<br />
Since this example uses PVM, you must change your .bash_pr<strong>of</strong>ile file to specify<br />
paths required by PVM. To view or edit your .bash_pr<strong>of</strong>ile file:<br />
1. Login (remain in your “home” directory).<br />
2. Use an editor to edit .bash_pr<strong>of</strong>ile (ie vi .bash_pr<strong>of</strong>ile).<br />
Below is an example .bash_pr<strong>of</strong>ile file (yours is probably very similar) modified to<br />
include the paths required by PVM (note the text in bold). You should add the same<br />
text to your .bash_pr<strong>of</strong>ile file.<br />
# .bash_pr<strong>of</strong>ile<br />
# Get the aliases and functions<br />
if [ -f ~/.bashrc ]; then<br />
16