The goal of this study is to understand techniques that lead to efficient parallel algorithms. The methodology is experimental, performance is measured in terms of actual implementation. A wide range of parallel architectures are considered. The current work is on shared memory multiprocessors, and the plan is to expand the study to include non-shared memory machines and networks of workstations. The application domains to be studied include combinatorial optimization, dynamic computational geometry (with applications to molecular dynamics simulation), rendering algorithms, and physical systems simulation.