HPC Wire

From BCCD 3.0

Revision as of 19:02, 2 November 2010 by Fitz (Talk | contribs)
Jump to: navigation, search

New Directions for Computational Science Education

Introduction to HPC Education

We could dedicate pages of text to a precise meaning of "High Performance Computing Education at the Undergraduate Level". In the end, just one word suffices a complete description of its current state: Broken. The June 2005 President's Information Technology Advisory Committee report "Computational Science: Ensuring America's Competitiveness" states "only a small fraction of the potential of computational science is being realized", and later in the report "The diverse technical skills and technologies underlying software, computing systems, and networks themselves constitute a critical U.S. infrastructure that we underappreciate and undervalue at our peril. Computational science is a foundation of that infrastructure." In other word: Broken.

Phenomenal recent advances in science rely on high performance computing (HPC) platforms and computational methods, yet the calculation of pi is still the canonical example motivating use of parallel computing techniques. Examples like this lack the relevance and luster necessary to connect theory, real-world science, and most of all learning. How can we teach the nuances of parallel matrix-matrix multiplication to undergraduate students who have at best only solved linear systems with their computational mathematics package (e.g. Octave, Maple, or Mathematica) or at worst, have never been confronted with the need to solve a linear system that couldn't be solved in an instant using the computational capabilities of today's handheld devices. This fundamental disconnect first affects our ability to attract students to computational science, and later our ability to adequately keep and prepare students for graduate school or professional work in HPC.

Current Issues

The increasing capabilities of commodity desktop systems, the wide availability of powerful scientific software packages, and the lack of access to High Performance Computational environments in the classroom weave a nearly impenetrable mesh masking the underlying science, preventing HPC education from being realized. Instead of being impediments to HPC education, these three aspects should be embraced and integrated into the core-teaching model for parallel computing: architectures, languages, environments, and applications. HPC Education needs a big facelift. Specifically, HPC Education needs:

The above issues describe a moving target. We understand that Information Technology and Computer Science are ever changing disciplines requiring frequent updates to their curricula. Computational Science education involves even more change since it not only encompasses IT and CS changes, but must also accommodate algorithmic changes and new computational areas opened by advances in technology and scientific research methods.

Addressing the above issues is quite a tough challenge. It involves curricular changes, which take moderate to extensive time on the part of the teacher to correctly weave into an existing program. Teachers typically teach using the framework used to teach them. We must help teachers modify and enhance their frameworks based on the most current software, hardware, and algorithmic advances. Preparation time for a teacher is a particularly rare commodity. It is quite practical to foster a community of teaching practitioners to develop a body of materials for use by other teachers.

Addressing These Issues

Several groups have made significant strides to address these issues. Bob Panoff and the National Computational Science Institute (NCSI), created the Computational Science Education Reference Desk (CSERD). He continues to lead the effort in extending it as a pathway project of the National Science Digital Library (NSDL) effort. David Joiner has created a series of example programs for CSERD designed to be an intermediate step between "hello world" style examples for parallel computing and full blown scientific models. Each of these example programs are designed to show speed-up with typical resources available in student labs and include real time visualization, so that students can "see" speedup happen. These resources give our science students potent tools and our teachers useful curricular examples. NCSI also runs a broad spectrum of week-long workshops for all flavors of college and university science teachers, covering a range of computational methods and levels of experience. Carnegie Mellon University has created Alice, a free 3D interactive modeling environment which its' authors have used to introduce object oriented programming to middle school, high school, and community college students. It incorporates a very natural approach to parallel programming. Drs. Shiflet, Landau, Swanson, Helland, Yasar, and others are certainly making significant contributions to Computational Science at their institutions.

The authors of this article are seeking to make an impact on Computational Science education by introducing appropriate models at the middle and high school levels. The earlier we reach students, the greater the life-long impact.

Our goals are quixotic, but simple. We are not looking to a future computational infrastructure; we seek to exploit the hidden, existing, computational infrastructure. Moore's Law and the success of the PC manufacturers amply point to an abundance of computer cycles surrounding us. We want to give access to middle school and high school students, access to the scientific tools currently used in colleges and universities. It has to be sufficiently flashy to compete with the diversions of the video game culture. The students also need to learn the science involved and the associated operational skills. The really big goal is to fully engage reasoning skills in a progressively complex open-ended self-directed exploration.


As an example of how the existing computational infrastructure can be leveraged for HPC education, consider GROMACS, a molecular dynamics software package primarily designed for bimolecular systems such as proteins and lipids. It supports simulations that help researchers discover how a molecule, for example a string of amino acids, might fold upon itself as it becomes a protein, the building blocks of the human body. As the simulation progresses it shows how different parts of the biomolecule might interact with each other.

GROMACS is a complex fully-featured tool. We are working on some recipes for both teachers and students that will help them have successful guided explorations. We are motivating the use of GROMACS by noting the relative simplicity of RNA and DNA molecules which are "just" composed of chains of four bases. Identifying their interaction sites in 3 dimensions is a daunting computational task. Proteins, composed of chains of the twenty amino acids, are the most structurally complex macromolecules known. For instance there are 1.6 x 10^60 different DNA chains of length 100. For every one of these DNA chains there are 7.9x10^69 different protein chains. There are 1.3x10^130 different protein chains of length 100. Given the limitations of the human lifespan, statistical methods are needed to identify stable configurations in a timely fashion.

Teachers and students need immediate access to HPC environments for exploration of GROMACS and other computational science applications, yet apparently few have HPC resources close at hand. We have figured-out several ways to bring relatively high performance computational resources to students. Paul Gray has previously created the Bootable Cluster CD (BCCD) as a way to transform a run-of-the-mill Windows or Macintosh lab into a high speed computational cluster in a matter of minutes. See http://bccd.net/ for more information. One reason we chose GROMACS is it is designed to run on clusters. We are working on a GROMACS curriculum module for the BCCD that will have the tools and educational guidance to make it accessible at middle school, high school, and at the undergraduate level.


But this is not all. Tom Murphy created two clusters at Contra Costa College to support his high performance computing technici

Personal tools