Synergy User Manual and Tutorial. - THE CORE MEMORY
Synergy User Manual and Tutorial. - THE CORE MEMORY
Synergy User Manual and Tutorial. - THE CORE MEMORY
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Synergy</strong> <strong>User</strong> <strong>Manual</strong> <strong>and</strong> <strong>Tutorial</strong><br />
supercomputing, after performance, is cost efficiency. The third fastest supercomputing<br />
cluster is the 17.6 TFlop System X at Virginia Tech. It consists of 1100 dual processor<br />
Apple Power Macintosh G5s running Mac OS X. It cost a mere $5.2 million, which is 10<br />
percent of the cost of much slower mainframe supercomputers.<br />
The Parallel Virtual Machine (PVM)<br />
The Parallel Virtual Machine (PVM), a software tool to implement a system of<br />
networked parallel computers, was originally developed by Oak Ridge National<br />
Laboratory (ORNL) in 1989 by Vaidy Sunderam <strong>and</strong> Al Geist. Version 1 was a<br />
prototype that was only used internally for research .PVM was later rewritten by<br />
University of Tennessee <strong>and</strong> released as Version 2 in 1991, which was used primarily for<br />
scientific applications. PVM Version 3, completed in 1993, supported fault tolerance <strong>and</strong><br />
provided better portability. This system supports C, C++ <strong>and</strong> Fortran programming<br />
languages.<br />
PVM allows a heterogeneous network of machines to function as a single distributed<br />
parallel processor. This system uses message-passing model as a means to implement the<br />
sharing of tasks between machines. Programmers use PVM’s message passing to take<br />
advantage of the computational power of possibly many computers of various types in a<br />
distributed system, making them appear to be one virtual machine. PVM’s API has a<br />
collection of functions to facilitate parallel programming by message passing. To spawn<br />
workers, the pvm_spawn() function is called:<br />
int status = pvm_spawn(char* task, char** argv, int flag, char* where, int<br />
ntask, int* tid);<br />
where status is an integer that holds the number of tasks successfully spawned, task is the<br />
name of the executable to start, argv is the arguments for the task program, flag is an<br />
integer that specifies PVM options, where is the identifier of a host or system in which to<br />
start a process, ntask is an integer holding the number of task processes to start, <strong>and</strong> tid is<br />
an array to hold the task process ID’s. To end another task process, use the pvm_kill()<br />
function:<br />
int status = pvm_kill(int tid)<br />
where status contains information about the operation, <strong>and</strong> tid is the task process number<br />
to kill. To end the calling task, use the pvm_exit() function:<br />
int status = pvm_exit();<br />
67