60 likes | 306 Views
Parallel Programming using PVM (Parallel Virtual Machines) Douglas Moore 10 November 2003 CS 775 – Distributed Systems. PVM – Parallel Virtual Machines A set of software tools (libraries) for making efficient use of a cluster (networked) of computers
E N D
Parallel Programming using PVM (Parallel Virtual Machines) Douglas Moore 10 November 2003 CS 775 – Distributed Systems
PVM – Parallel Virtual Machines • A set of software tools (libraries) for making efficient use of a cluster (networked) of computers • Presents the developer with ability to address networked computers as a single virtual machine in order to execute computational tasks • Heterogeneous architecture not required • (But requires more care in setup and makefile (aimk) configuration)
Categories of operations supported • Process Management and Control • Message Packing and Sending • Message Unpacking and Receiving • Message Buffer Management • Task Signaling • Information and Utility Functions • Group Operations
Process Management and Control • pvm_spawn • pvm_kill • pvm_exit • pvm_addhosts • pvm_delhosts • pvm_halt • Means by which processes are created, assigned to hosts, exited, and killed • Hosts may be added or deleted from PVM at runtime • PVM execution stopped by pvm_halt
Message Packing, Sending, Unpacking, Receiving, and Buffer Management • May use XDR when passing between hosts with incompatible formats • May also use Raw data to send in format native to sending machine • Sender does not wait for acknowledgment • Message buffered at receiving end until received • PVM reliably delivers messages (if destination exists) • Message order from each sender to each receiver is preserved • PVM Interface hides socket programming details
Simplified Architecture of a PVM Program Data A B Data Pack routines Send buffer Pack routines Send buffer PVM Send routines TCP Sockets Data PVM Send routines Data PVM unpack routines Receive buffer PVM unpack routines Receive buffer PVM Receive routines PVM Receive routines TCP Sockets TCP Sockets PVMD List of managed tasks Pvm task id 1 Pvm task id 2 Pvm task id 3 PVMD List of managed tasks Pvm task id 100 Pvm task id 102 Pvm task id 103 UDP Sockets