High-speed networks and improved microprocessor performance are making
networks of workstations an appealing, low-cost vehicle for parallel
computing. The hardware cost is essentially zero, since many organizat
ions already have extensive workstation networks. In terms of performa
nce, networked workstations can approach or exceed supercomputer perfo
rmance for some applications, especially those without stringent synch
ronization and communication requirements. The authors' implementation
, called TreadMarks, supports parallel computing on networks of workst
ations by providing the application with a shared memory abstraction.
Shared memory facilitates the transition from sequential to parallel p
rograms. After identifying possible sources of parallelism in the code
, most of the data structures can be retained without change, and only
synchronization needs to be added to achieve a correct shared; memory
parallel program. TreadMarks is implemented entirely as a user-level
library on top of Unix. Kernel modifications are unnecessary because m
odern Unix implementations provide all required communication and memo
ry management functions. Programs written in C, C + +, or Fortran are
compiled and linked with the TreadMarks library using any standard com
piler for that language. As a result, the system is fairly portable, a
nd it has been ported to a number of platforms. These include IBM RS-6
000, SP-1, and SP-2; DEC Alpha and DECStation; and Hewlett-Packard, Si
licon Graphics, and Sun systems.