PVM (Parallel Virtual Machine) allows developers to write applications that can run across multiple heterogeneous computers connected over a network as if they were a single parallel computer. PVM has two main components - a library of routines and a daemon that runs on each host. A PVM application consists of multiple sequential programs or tasks that correspond to processes and can be organized in different structures like a star graph with one supervisor task and multiple worker tasks. Common structures include the supervisor-workers model with one supervisor activating worker tasks, and the hierarchy structure which allows workers to create new levels of sub-workers.