Chemistry is a central science in that, at its core, chemistry is the understanding of the way atoms and molecules interact. Chemistry influences many areas such as physics, biology, pharmaceuticals, materials, and chemical engineering. Computational chemistry, while a relatively young part of the chemistry field, has become a third pillar in the science next to experimentation and theory.
The demand for understanding and prediction of experimental results through computation has never been higher, and the physical models that underlie the chemistry are continually improving and evolving to meet new scientific challenges. All of these pieces together, and the changing ecosystem of hardware and software, make the development of computational chemistry codes a larger challenge than we have ever experienced.
This talk will focus on the challenges that computational chemistry faces in taking the equations that model the very small (molecules and the reactions they undergo) to efficient and scalable implementations on the very large computers of today and tomorrow.
In particular, how do we take advantage of the newest architectures while preparing for the next generation of computers? How do we increase programmer productivity while ensuring excellent performance, efficiency and portability across multiple platforms? How do we take advantage of the work of mathematicians, computer scientists and other computational scientists to enable our science, while ensuring maintainability and usability of the software? How do we ensure that the algorithms that we develop are making wise use of the computational resources? How do help the next generation of computational chemists to be ready for the complex computing environments that they will face?
While not claiming to have answers to all (or any!) of these questions, we will explore some possible solutions and their implications as we go forward and face the current petascale and the future exascale challenges.