Building a Conservative Parallel Simulation with Existing Component Libraries

Our application is a parallel discrete event simulation of a wafer fabrication plant. When implementing such an application using a conservative protocol [2] on a shared-memory multiprocessor, an effective approach is for the programmer to use a general parallel runtime library, and implement optimizations specific to the simulation application. We initially evaluated four runtime libraries [9] and found Active Threads [3] to be most suitable and efficient for thread-creation and synchronization. But Active Threads' memory management does not scale well. We therefore added a different memory management library called Vmalloc [7] to provide a more efficient way to dynamically allocate and deallocate objects. For parallel application development, it is good news that there are public-domain research libraries which are both efficient and stable enough to build applications on shared-memory multiprocessor. The ability to use independent component libraries cannot be over-emphasized, and is very relevant to making parallel programming easier and more accessible to application programmers.