Parallel Virtual Machine (PVM) is software system that allows a homogenous (same type) or heterogeneous (different types) networks of computers to be used as a single computational resource . The individual computers may be interconnected by a variety of networks such as Ethernet or FDDI. PVM is used to build and manage the virtual parallel machine and provide the necessary message passing communication. By sending and receiving messages, multiple tasks can be used co-operatively to solve problems in parallel. Under PVM a network of workstations can be used as a single distributed memory computer. The individual machines may have shared or local. This can be used to solve problems which need high computational power
sir, can you please send me report of parallel virtual machine.
send me a report on parallel virtual machine
please send me the detailed report on seminars topic Parallel Virtual Machine PVM.
PVM (Parallel Virtual Machine) is a software environment for heterogeneous distributed computing. It allows a user to create and access a parallel computing system made from a collection of distributed processors, and treat the resulting system as a single virtual machine (hence the name, parallel virtual machine).
The hardware in a user's virtual machine may be single processor workstations, vector machines or parallel supercomputers or any combination of those. The individual elements may all be of a single type (homogeneous) or all different (heterogeneous) or any mixture, as long as all machines used are connected through one or more networks. These networks may be as small as a LAN connecting machines in the same room, as large as the Internet connecting machines across the world or any combination. This ability to bring together diverse resources under a central control allows the PVM user to divide a problem into subtasks and assign each one to be executed on the processor architecture that is best suited for that subtask.
PVM is based on themessage-passing model of parallel programming. Messages are passed between tasks over the connecting networks.
User's tasks are able to initiate and terminate other tasks, send and receive data, and synchronize with one another using a library of message passing routines. Tasks are dynamic (i.e. can be started or killed during the execution of a program), even the configuration of the virtual machine (i.e. the actual machine that are part of your PVM) can be dynamically configured.
"The first version of PVM was written during Summer of 1989 at Oak Ridge National Laboratory. It was not released, but was used in applications at the lab."
"Version 2 was written from scratch during February 1991 at the University of Tennessee, Knoxville, and released in March of that year. It was intended to clean up and stabilize the system so that external users could benefit."
"After a year and a half of continuing research we felt that we had reached a limit in being able to add to PVM version 2. Version 3 was redesigned from scratch, and a complete rewrite started in September 1992, with first release of the software in March 1993. While similar in spirit to version 2, version 3 includes features that didn't fit the old framework - most importantly fault tolerance, better portability and scalability."
Principles upon which PVM is built are the following-
• User-configured host pool : The application's computational tasks execute on a set of machines that are selected by the user for a given run of the PVM program. Both single-CPU machines and hardware multiprocessors (including shared-memory and distributed-memory computers) may be part of the host pool. The host pool may be altered by adding and deleting machines during operation (an important feature for fault tolerance).
• Translucent access to hardware: Application programs either may view the hardware environment as an attributeless collection of virtual processing elements or may choose to exploit the capabilities of specific machines in the host pool by positioning certain computational tasks on the most appropriate computers.
• Process-based computation: The unit of parallelism in PVM is a task (often but not always a Unix process), an independent sequential thread of control that alternates between communication and computation. No process-to-processor mapping is implied or enforced by PVM; in particular, multiple tasks may execute on a single processor.
• Explicit message-passing model: Collections of computational tasks, each performing a part of an application's workload using data-, functional-, or hybrid decomposition, cooperate by explicitly sending and receiving messages to one another. Message size is limited only by the amount of available memory.
• Heterogeneity support: The PVM system supports heterogeneity in terms of machines, networks, and applications. With regard to message passing, PVM permits messages containing more than one datatype to be exchanged between machines having different data representations.
• Multiprocessor support: PVM uses the native message-passing facilities on multiprocessors to take advantage of the underlying hardware. Vendors often supply their own optimized PVM for their systems, which can still communicate with the public PVM version.
Each machine that will participate in the PVM system must be executing a pvmd. It is sufficient for a user to execute this daemon in their user space.
The PVM system is started on a single machine (using the pvm console command). That single machine is used to start all other pvmd's in the system, via a host file. PVM uses rsh or ssh to start these daemons.
Machines may share a file system. The binary executables for different architectures, including the PVM commands, are stored in architecture specific directories.
The pvmd looks in the appropriate architecture directory when it needs to execute (spawn) user processes as PVM tasks.