by Thomas Murphy, Dr. Paul Gray, Charlie Peck, Dr. David Joiner
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
another 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.
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:
- To be more visual
- A picture is worth four-thousand bytes or a thousand
words (depending on the underlying architecture).
- To show relevant parallel speedup
- Students need to see parallel codes actually speed up.
- An animation sequence should be rendered in minutes,
rather than in a few hours or even overnight.
- To provide immediate feedback
- Of actual scientific models rather than animations
presenting previously computed results
- The impact of a 3-fold speedup in an algorithm is lost
when the application first sits in a queue for an hour.
- To be relevant and authentic
- No algorithm should be presented with the caveat "but
you would never do it this way in practice." Calculation of PI comes to mind, as
do many other traditional numerical examples.
- This does not preclude showing a progression of
functionally identical algorithms as a way to motivate algorithmic development,
mathematical intuition, and creativity.
- To be reproducible on multiple systems
- Students need to experience the variance of results
produced using different computational resources. They need to gain the
mathematical and scientific intuition to judge what is acceptable and what
points to algorithmic or representational errors. They must gain the means to
correct these errors.
- To be resonant
- What students are taught in their undergraduate HPC
courses should be universally applicable, regardless of their subsequent paths
to national laboratories, graduate programs, or the corporate world.
- To be progressively open-ended
- Study after study has shown that open-ended questions
elicit more involvement and learning than closed ones. Our teaching, our labs
and our student exercises must have room for inquiry. They must challenge
students with teacher directed areas of investigation and student initiated
explorations. Note this is not a proscription for graduate level study, but for
age appropriate investigation and exploration from middle school through their
undergraduate education.
- To be accessible
- Students need to have on-demand access to HPC resources
inside the classroom, outside the classroom, at the local Internet Cafe, etc.
- Attempting to teach HPC in a void of HPC resources is
not really teaching HPC.
- To be structured
- HPC education is missing the "peeling-the-onion"
approach to HPC investigations.
- For instance, an educational exploration of the widely
used Message Passing Interface (MPI), with its 120+ commands and its many
message formats, structures, and communication modes, warrants a progressive
sequence of lessons and exercises each building on the other starting from the
six fundamental commands (MPI_Init, MPI_Finalize, MPI_Comm_Rank, MPI_Comm_Size,
MPI_Send, and MPI_Recv), which alone suffice for many exercises and many
real-world applications.
- To be interdisciplinary
- Computational Science education is currently that opaque
space betwixt and between Mathematics, Computer Science, Physics, Biology,
Chemistry, and the other sciences.
- A degree of sophistication in all these disparate
disciplines is necessary to grasp Computational Science and be capable as a
practitioner.
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.
Several groups have made significant strides to address these issues.
Bob Panoff and the National Computational Science Institute (NCSI)
(
http://www.computationalscience.org), created the Computational
Science Education Reference Desk (CSERD)
(
http://www.shodor.org/refdesk/). He continues to lead the effort in
extending itas 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
(
http://www.alice.org/) 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 (
http://www.gromacs.org), 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.cs.uni.edu/ 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 technician training
program (
http://contracosta.edu/hpc/). He is interfacing GROMACS to
these clusters so students can access them via the web if they have a
hankering to do some protein folding but don't happen to have a spare
Windows or Macintosh lab available. The authors are working with Dr.
Henry Neeman at the University of Oklahoma to boost this computational
capacity with Condor clusters via the NSF CI-TEAM grant proposal
"Scalable Cyberinfrastructure for Bioinformatics and Beyond." These
Condor clusters harness spare cycles in places like under-utilized
computer labs, and so we return full circle to the wonderful world of
expanding computational infrastructure by creatively exploring existing
computational infrastructure.
We have also created Little-Fe, a portable, educational eight node PC
cluster (
http://contracosta.edu/hpc/resources/Little_Fe/). It is used
at schools and conferences to stir visible interest in Computational
Science with meaningfully flashing lights and colorful, appropriate,
scientific visualizations. We are just finishing the third version of
Little-Fe and will be publishing a recipe for others to construct their
own. It is expected to cost about $2,000 in parts. Next steps are a
common operating system built on the BCCD, including semi-automatic
update with the latest computational science and scientific
visualization tools, applications, and models.
We are working to address the needed changes we have outlined through
teacher workshops, curricular models, textbooks, and lab workbooks. We
are looking to press drug discovery, disease origin, genome mapping,
and weather modeling into service as scientific arenas for exploration
with the BCCD, Little-Fe, and other HPC computing resources. Stay tuned
for more adventures in weaving computational science education into the
lives of the everyday students with simple low-cost solutions.
Tom Murphy
tmurphy@contracosta.edu
Tom Murphy is professor of Computer Science at Contra Costa College, a
community college straddling San Pablo and Richmond, California. He is
also program chair for Computer Science and director of the NSF
sponsored Contra Costa College High Performance Computing Regional
Education and Training Center which trains PC cluster administrators.
He is also West County Robotics Coach.
Dr. Paul Gray
gray@cs.uni.edu
Paul Gray is an Associate Professor of Computer Science at the
University of Northern Iowa. He leads the Bootable Cluster CD project
(
http://bccd.cs.uni.edu) and provides instructional support for the
National Computational Sciences Institute summer workshops on Cluster
and Parallel Computing.
Charlie Peck
charliep@cs.earlham.edu
Charlie Peck is an Assistant Professor of Computer Science at Earlham
College in Richmond, IN. In addition to teaching a broad range of
classes he is the nominal leader of Earlham's Cluster Computing Group
(
http://cluster.earlham.edu). Charlie and his students are active in
the BCCD and Little-Fe projects, in addition to having a strong
interest in curriculum design and development for computational
science.
Dr. David Joiner
djoiner@kean.edu
David Joiner is an assistant professor of computational mathematics
with the New Jersey Center for Science and Technology Education at Kean
University. He is a Co-PI of the Computational Science Education
Reference Desk (CSERD), a pathway project of the National Science
Foundation's National Science, Technology, Engineering, and Mathematics
Digital Library, and has developed curricular materials for parallel
computing for CSERD and for the Cluster and Parallel Computing
workshops of the National Computational Science Institute.