Efficient programming of task-parallel problems, where the number and execu
tion times of the computational tasks can vary unpredictably, demands an as
ynchronous and adaptive approach. In this sort of approach, however, such f
undamental programming issues as load sharing, data sharing, and terminatio
n detection can present difficult programming problems. This paper presents
the PMESC library for managing task-parallel problems on distributed-memor
y MIMD computers within the context of the SPMD (single program, multiple d
ata) programming model. PMESC offers support for all of the application-ind
ependent programming issues involved in SPMD task-parallel computation in a
portable and efficient way while still allowing users to customize their c
odes. Because different problems may require different strategies to achiev
e good performance, PMESC is based on a straightforward model in which diff
erent building blocks can be easily put together and changed to accommodate
the particular needs of the different applications. The library provides a
n interface that allows users to program a virtual machine and thereby igno
re the details associated with message passing and machine architecture. Th
ese features make PMESC accessible to a wide variety of users. (C) 1999 Aca
demic Press, Inc.