Hybrid programming in high performance scientific computing
Typically, in scientific parallel algorithms, a process based approach is used, i.e., each process has access to a portion of local memory and messages between processes are sent and received, even when both processes reside on the same physical node. Due to the prevalence of Symmetric Multi-Processor (SMP) clusters as the preferred architecture for many supercomputers, the use of shared memory in concert with the previously mentioned process-based memory provides an avenue to reduce overall memory requirements and use memory more efficiently. In this work, a hybrid parallel algorithm (utilizing both shared and process-based memory) to solve the coupled cluster equations of computational chemistry is developed and implemented to interface with the General Atomic and Molecular Electronic Structure System (GAMESS), which is developed and maintained by an Iowa State University research group in the Department of Chemistry. Preliminary performance and test results of the algorithm are shown.