200 likes | 584 Views
Parallel Virtual Machine. Rama Vykunta. Introduction. PVM provides a unified frame work for developing parallel programs with the existing infrastructure PVM enables a collection of heterogeneous computer systems as a single parallel virtual machine Transparent to the user. Introduction.
E N D
Parallel Virtual Machine Rama Vykunta
Introduction • PVM provides a unified frame work for developing parallel programs with the existing infrastructure • PVM enables a collection of heterogeneous computer systems as a single parallel virtual machine • Transparent to the user
Introduction • A simple computing model based on tasks is used which is given by a set of well defined function calls • An application is written as a set of co-operating tasks • Processes communicate/synchronize with other processes
Introduction • Process management, machine configuration and support for input/output is possible • User can configure the hosts according to the demand. He can position certain tasks on the most appropriate machines • Unit of parallelism in PVM is a task
All tasks on PVM cooperate by sending and receiving messages from one another • PVM supports functional and data parallelism • A well defined library of PVM interface routines are used for programming
Details • PVM system is composed of two parts • Daemon(pvmd) that resides on all computers making the virtual machine • The second part of the system is a library of PVM interface routines • All PVM tasks are identified by an integer task identifier (TID) • A task can join or leave any group any time without having to inform any other task in the affected groups
Details • User can write programs in C, C++ or Fortran which contain embedded calls to the PVM library • Starting PVM • % pvm • pvm>add hostname • pvm>delete hostname • pvm>conf • pvm>ps -a • pvm>halt
Details • To compile use architecture independent ‘aimk’ which automatically determines the architecture and links any OS specific libraries to the application • PVM supports use of multiple consoles, it is possible to run a console on any host and also to run multiple consoles on the same machine
Details • PVM supports two models of computation namely crowd computing and tree computing. • Crowd computing is a collection of closely related processes, typically executing the same code • Tree computing in which processes are spawned dynamically as the computation progresses
Example main() { int cc, tid, msgtag; char buf[100]; printf(“I’m t%x\n”, pvm_mytid()); cc = pvm_spawn(“hello_other”, (char**)0, 0, “”, 1, &tid); if(cc == 1) { msgtag = 1; pvm_recv(tid, msgtag); pvm_upkstr(buf); printf(“from t%x: %s\n”, tid, buf); } else printf(can’t start hello_other\n”); pvm_exit(); }
Example # include “pvm3.h” main() { int ptid, msgtag; char buf[100]; ptid = pvm_parent(); strcpy(buf, “hello, world from”); gethostname(buf + strlen(buf), 64); msgtag = 1; pvm_initsend(PvmDataDefault); pvm_upkstr(buf); pvm_send(ptid, msgtag); pvm_exit(); }
Example • After printing the task ID it initiates the copy of the other program called hello_other using pvm_spawn() function. • The main program recieves the message using pvm_recv() function and the buffer is exracted by pvm_upkstr() • The final pvm_exit() call dissociates the program from the PVM system
XPVM • XPVM is a GUI tool for analyzing the parallel programs in PVM • XPVM is can be used as a trace monitor and a call-level debugger extension to the PVM • XPVM is based on PVM, TCL and TK • XPVM can be used to view task utilization, network view, space-time view and message-queue view.
XPVM • Hosts can be added and removed form the virtual machine • Using the task menu, tasks can be spawned, killed or signaled • Each host is connected to the network by a link and a color is used to indicate the state of the host • Green: Actively running the tasks • White: Host is idling • Yellow: Host is not busy collecting information
XPVM • Space - Time view displays the status of the tasks and hosts during a program execution • Utilization view shows the overall computing state during a given instance • Trace view prints the tasks during each instance of activity • Event History view contains all the trace events in the trace file
References • PVM: Parallel Virtual Machine: A Users' Guide and Tutorial for Networked Parallel Computing MIT Press Scientific and Engineering Computation