Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 16, Issue 4, Pages 277-285
http://dx.doi.org/10.3233/SPR-2008-0260

Multicore Challenges and Benefits for High Performance Scientific Computing

Ida M.B. Nielsen and Curtis L. Janssen

Sandia National Laboratories, P.O. Box 969, Livermore, CA 94551, USA

Copyright © 2008 Hindawi Publishing Corporation. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract

Until recently, performance gains in processors were achieved largely by improvements in clock speeds and instruction level parallelism. Thus, applications could obtain performance increases with relatively minor changes by upgrading to the latest generation of computing hardware. Currently, however, processor performance improvements are realized by using multicore technology and hardware support for multiple threads within each core, and taking full advantage of this technology to improve the performance of applications requires exposure of extreme levels of software parallelism. We will here discuss the architecture of parallel computers constructed from many multicore chips as well as techniques for managing the complexity of programming such computers, including the hybrid message-passing/multi-threading programming model. We will illustrate these ideas with a hybrid distributed memory matrix multiply and a quantum chemistry algorithm for energy computation using Møller–Plesset perturbation theory.