About HP-PVM
PVM is a popular standard parallel communications library for building parallel software. It allows programs to easily create and manipulate tasks on remote computers, and allows them to communicate efficiently and easily through 'messages', in scalable heterogeneous environments.HP-PVM (High Performance Parallel Virtual Machine) is a fully commercially supported replacement for the standard PVM system. Developed in-house from scratch, HP-PVM has been produced for performance, reliability, and rapid detection of faults. Clients have found the software to be far more stable than PVM, under Unix and MS-Windows platforms, and significantly faster with real world parallel applications. HP-PVM can be integrated into applications more invisibly and professionally than traditional PVM, as there are no elaborate daemon set-up procedures or obtrusive PVM graphical interfaces.
HP-PVM is a compatible subset of PVM 3.3, and has various extensions to the PVM command set and implementation to deal with some of its limitations, such as non-blocking send operations, multi-processor support and shared memory communications.
Installation of the software is straight forward, and a diagnostic test program allows any problems to be quickly detected. Debug modes allow all PVM calls and data to be dumped to files, along with detailed error reports. Checksum verification allows automatic checking of correct data transfer. A non-determinism harness allows the random execution divergence of parallel code to be captured and replayed, to allow reproduction of awkward intermittent problems. Each computer in the system can emulate many, allowing software to be tested on larger numbers of computers than are available.
A simple high level library for the construction of process farm programs is included. The library handles process mapping, fault tolerance, automatic utilisation of new computers, and co-ordination of communications, leaving the user to concentrate on the application logic.
We maintain a close co-operative partnership with our clients, to resolve any problems that occur. When problems with HP-PVM occur, they are fixed promptly. Where the cause of a problem is unclear, we will work with you to resolve the problem, through hands-on assistance, advice, or through extending error diagnosis tools. We are always happy to enhance or customise our software to provide the facilities you need, whether fleshing out any missing PVM commands, adding new commands (e.g., non-blocking I/O), or extending functionally (e.g., flow control in scalable communications).
We support most Unix and MS-Windows platforms. As operating system specifics are neatly isolated in our code, we can rapidly and reliably port to new operating systems, usually within a day. The software is available as a 32 bit library or DLL for Microsoft windows, and as a library for most Unix platforms. The library has C and Fortran interfaces.
Performance
These are results from a simple test, comparing HP-PVM to WPVM running on Windows NT systems.The test is based on a group of processes, forming a cycle. The first process sends a message to the second, which sends it to the third, etc.
The throughput tests have the first task send a continuous sequence of messages, which pass through the chain of tasks once. We record how many messages per second arrive at the final computer.
The latency test has the first task sending periodic messages which pass through the system many times. We record the time it takes to complete it's journey.
In summary:
Latency
multiprocessor: 34 times faster
network: 3 times fasterThroughput
multiprocessor: 11 times faster (207 for very small messages)
network: 3 times faster (13 for very small messages)
Single process test. This uses a chain of 6 tasks. The latency test sends messages every 3 seconds, which cycle 40 times.
HP-PVM using shared memory
Latency Avg time to arrive
4 bytes 70176
800 bytes 80176
8000 bytes 140176
40000 bytes 941352Throughput Avg msg/sec Avg byte/sec
4 bytes 2538 10152
800 bytes 1735 1388000
8000 bytes 469 3752000
14400 bytes 265 3816000 (max)
40000 bytes 52 2080000
HP-PVM using tcp/ip (winsock)
Latency Avg time to arrive
4 bytes 372294
800 bytes 400705
000 bytes 761117
40000 bytes 2799352Throughput Avg msg/sec Avg byte/sec
4 bytes 153 612
800 bytes 136 108800
8000 bytes 65 520000
40000 bytes 15 600000
WPVM using tcp/ip (winsock)
Latency Avg time to arrive
4 bytes 2349411
800 bytes 2366294
8000 bytes 2450000
40000 bytes 38337500Throughput Avg msg/sec Avg byte/sec
4 bytes 15 60
800 bytes 15 12000
8000 bytes 15 120000
17600 bytes 12 211200 (max)
40000 bytes 4 160000
Network test. Throughput test uses just two computers, data being sent from the first to the second. The latency test uses two computers, with the message going around the cycle 8 times.
HP-PVM
Latency Avg time to arrive
4 bytes 15647
800 bytes 49647
8000 bytes 233083
40000 bytes 946583Throughput Avg msg/sec Avg byte/sec
4 bytes 412 1648
800 bytes 385 308000
8000 bytes 84 672000
40000 bytes 16 640000
WPVM
Latency Avg time to arrive
4 bytes 46882
800 bytes 46882
8000 bytes 281250
40000 bytes 1360833Throughput Avg msg/sec Avg byte/sec
4 bytes 31 124
800 bytes 31 24800
8000 bytes 31 248000
40000 bytes 2 80000
Quad processor file server test. This is the same as the single processor test
HP-PVM using shared memory
Latency Avg time to arrive
4 bytes 31214
800 bytes 31285
8000 bytes 62500
40000 bytes 410714Throughput Avg msg/sec Avg byte/sec
4 bytes 6429 25716
800 bytes 5199 4159200
8000 bytes 1422 11376000
40000 bytes 132 5280000
HP-PVM using tcp/ip (winsock)
Latency Avg time to arrive
4 bytes 156214
800 bytes 187500
8000 bytes 312500
40000 bytes 1122785Throughput Avg msg/sec Avg byte/sec
4 bytes 377 1508
800 bytes 373 298400
8000 bytes 180 1440000
40000 bytes 45 1800000
WPVM using tcp/ip (winsock)
Latency Avg time to arrive
4 bytes 1069285
800 bytes 1078214
8000 bytes 1199785
40000 bytes 5115000Throughput Avg msg/sec Avg byte/sec
4 bytes 31 124
800 bytes 31 24800
8000 bytes 31 248000
40000 bytes 25 1000000
Main plus points of HP-PVM
Very reliable Full commercial support and customisation Fast communications, with 2-copy shared memory Default scalable comms plus automatic tcp link allocation Flow control in scalable communications Detailed error reporting Checksum data verification Emulation of large numbers of computers Multi-processor support Non-blocking and time-out send and probe commands Neat professional seamless integration into applications Distributed system starts up automatically when application is run, with no fussy 3rd party interfaces or configuration procedures