28.10.2014 Views

Synergy User Manual and Tutorial. - THE CORE MEMORY

Synergy User Manual and Tutorial. - THE CORE MEMORY

Synergy User Manual and Tutorial. - THE CORE MEMORY

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.

<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

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

Saved successfully!

Ooh no, something went wrong!