
Copyright © National Academy of Sciences. All rights reserved.
The Future of Computing Performance:   Game Over or Next Level?
RESEARCH, PRACTICE, AND EDUCATION  149
programming  is  not  part  of  the  undergraduate  curriculum  for  either 
CS  students  or  scientists  in other  domains  and  is  often  presented as  a 
graduate elective course for CS and electrical and computer engineering 
students. In the coming world of nearly ubiquitous parallel architectures, 
relegating parallelism to the boundaries of the curriculum will not suf-
fice. Instead, it will increasingly be a practical tool for domain scientists 
and  will  be  immediately  useful  for  software,  system,  and  application 
development.
Parallel programming—even the parallel programming of today—is 
hard, but there are enough counterexamples to suggest that it may not be 
intractable.  Computational  reasoning  for parallel  problem-solving—the 
intellectual process of mapping the structure of a problem to a strategy 
for solution—is fairly straightforward for computer scientists and domain 
scientists alike, regardless of the level of parallelism involved or apparent 
in the solution. Most domain scientists—in such fields as physics, biology, 
chemistry, and engineering—understand the concepts of causality, corre-
lation, and independence (parallelism vs sequence). There is a mismatch 
between  how  scientists  and  other  domain  specialists  think  about  their 
problems  and  how  they  express  parallelism  in  their  code.  It  therefore 
becomes difficult for both computer and noncomputer scientists to write 
programs. Straightforwardness is lost in the current expression of parallel 
programming. It is possible, and even common, to express the problem 
of parallel programming in a way that is complex and difficult to under-
stand, but the recommendations in this report are aimed at developing 
models and approaches in which such complexity is not necessary. 
Arguably,  computational  experimentation—performing  science 
exploration  with  computer  models—is  becoming  an  important  part  of 
modern scientific endeavor. Computational experimentation is modern-
izing the scientific method. Consequently, the ability to express scientific 
theories and models in computational form is a critical skill for modern 
scientists. If computational models are to be targeted to parallel hardware, 
as we argue in this report, parallel approaches to reasoning and think-
ing will be essential. Jeannette Wing has argued
18
 for the importance of 
computational thinking, broadly, and a current National Research Council 
study is exploring that notion. A recent report of that study also touched 
on concurrency and parallelism as part of computational thinking.
19
 With 
respect to the CS curriculum, because no general-purpose paradigm has 
18 
Jeannette M. Wing, 2006, Computational thinking, Communications of the ACM 49(3): 
33-35.
19 
See NRC, 2010, Report of a Workshop on the Scope and Nature of Computational Think-
ing, Washington, D.C.: The National Academies Press, available online at http://www.nap.
edu/catalog.php?record_id=12840.