The IBM "Tech Refresh" system installed at LLNL for the ASCI program is a cluster of SMP nodes, with four CPUs per node. Several application groups at LLNL have been experimenting with "mixed" programming models that use both message passing to communicate between nodes and some form of multithreading within the nodes. Multithreading techniques having included direct calls to the Pthreads library, compiler parallelization directives, and calls to parallelized math libraries.
We have interviewed code developers at LLNL to learn how their choice of programming models has affected performance, ease of programming, and scalability. In this talk, we will present some of the lessons learned from the experiences of these developers.