Biologists hope to use detailed physical simulations to test theories about cell movement. Computer scientists would like to be able to design parallel programs that run efficiently on a wide range of machines. This paper describes the intersection of these two desires. We present a general design methodology for portable parallel programs, use it to parallelize a cell simulation, and then analyze the result on a CM-5, SP-1, and network of workstations.

Our methodology is to use analytical models combined with empirical measurements of important kernels in order to choose between algorithms and data layout schemes. We can then implement efficient and re-usable data structures to hide the complexities of distributed memory programming. Detailed measurements of the application and the machines are then used to determine machine-specific optimizations. Using this technique we achieved good speedups on all three machines. This paper describes the results of each stage and discusses their implications for multiprocessor designers.




Download Full History