A survey of the practice of computational science

Computing plays an indispensable role in scientific research. Presently, researchers in science have different problems, needs, and beliefs about computation than professional programmers. In order to accelerate the progress of science, computer scientists must understand these problems, needs, and beliefs. To this end, this paper presents a survey of scientists from diverse disciplines, practicing computational science at a doctoral-granting university with very high re search activity. The survey covers many things, among them, prevalent programming practices within this scientific community, the importance of computational power in different fields, use of tools to enhance performance and soft ware productivity, computational resources leveraged, and prevalence of parallel computation. The results reveal several patterns that suggest interesting avenues to bridge the gap between scientific researchers and programming tools developers.

[1]  Eric Jones,et al.  SciPy: Open Source Scientific Tools for Python , 2001 .

[2]  Yanli Wang,et al.  Quantum ESPRESSO: a modular and open-source software project for quantum simulations of materials , 2009 .

[3]  D. Lettenmaier,et al.  A simple hydrologically based model of land surface water and energy fluxes for general circulation models , 1994 .

[4]  Jesús Labarta,et al.  A Simulation of Seismic Wave Propagation at High Resolution in the Inner Core of the Earth on 2166 Processors of MareNostrum , 2008, VECPAR.

[5]  Chen Ji,et al.  A 14.6 billion degrees of freedom, 5 teraflops, 2.5 terabyte earthquake simulation on the Earth Simulator , 2003, ACM/IEEE SC 2003 Conference (SC'03).

[6]  Norman P. Jouppi,et al.  Readings in computer architecture , 2000 .

[7]  Hans P. Zima,et al.  The Earth Simulator , 2004, Parallel Comput..

[8]  Gilbert Strang,et al.  Computational Science and Engineering , 2007 .

[9]  Steven G. Johnson,et al.  The Design and Implementation of FFTW3 , 2005, Proceedings of the IEEE.

[10]  Samuel A. Fineberg,et al.  Using MPI-Portable Parallel Programming with the Message-Passing Interface, by William Gropp , 1996 .

[11]  D. E. Stevenson,et al.  Science, computational science, and computer science: at a crossroads , 1994, CACM.

[12]  Michiel J. L. de Hoon,et al.  Bioinformatics and Computational Biology with Biopython , 2003 .

[13]  Joanna McGrenere,et al.  "Bloat": the objective and subject dimensions , 2000, CHI Extended Abstracts.

[14]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[15]  W. Press,et al.  Numerical Recipes in Fortran: The Art of Scientific Computing.@@@Numerical Recipes in C: The Art of Scientific Computing. , 1994 .

[16]  Niklaus Wirth,et al.  A Plea for Lean Software , 1995, Computer.

[17]  Sanjay J. Patel,et al.  Implicitly Parallel Programming Models for Thousand-Core Microprocessors , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[18]  Peter W. O'Hearn,et al.  Verified Software: A Grand Challenge , 2006, Computer.

[19]  Diomidis Spinellis,et al.  J%: Integrating Domain-Specific Languages with Java , 2009, 2009 13th Panhellenic Conference on Informatics.

[20]  Nancy M. Amato,et al.  STAPL: A Standard Template Adaptive Parallel C++ Library , 2001 .

[21]  Curtis R. Cook,et al.  Are expectations for parallelism too high? a survey of potential parallel users , 1994, Proceedings of Supercomputing '94.

[22]  William H. Press,et al.  Book-Review - Numerical Recipes in Pascal - the Art of Scientific Computing , 1989 .

[23]  Wolfram Schulte,et al.  The design of a task parallel library , 2009, OOPSLA '09.

[24]  G.E. Moore,et al.  Cramming More Components Onto Integrated Circuits , 1998, Proceedings of the IEEE.

[25]  Steve Plimpton,et al.  Fast parallel algorithms for short-range molecular dynamics , 1993 .

[26]  Sharon C. Glotzer,et al.  HOOMD-blue, general-purpose many-body dynamics on the GPU , 2010 .

[27]  Sean R. Eddy,et al.  Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids , 1998 .

[28]  Woongki Baek,et al.  Green: a framework for supporting energy-conscious programming using controlled approximation , 2010, PLDI '10.

[29]  Olga G. Troyanskaya,et al.  The Sleipnir library for computational functional genomics , 2008, Bioinform..

[30]  Telecommunications Board,et al.  Getting Up to Speed: The Future of Supercomputing , 2005 .

[31]  Jeremy Kepner,et al.  High-Productivity Software Development with pMatlab , 2009, Computing in Science & Engineering.

[32]  Michel Juillard,et al.  Dynare: a program for the resolution and simulation of dynamic models with forward variables through the use of a relaxation algorithm , 1996 .

[33]  Tricia Walker,et al.  Computer science , 1996, English for academic purposes series.

[34]  Milind Girkar,et al.  EXOCHI: architecture and programming environment for a heterogeneous multi-core multithreaded system , 2007, PLDI '07.

[35]  D. M. Beazley,et al.  Feeding a large-scale physics application to Python , 1997 .

[36]  Perry R. Cook,et al.  ChucK: A Concurrent, On-the-fly, Audio Programming Language , 2003, ICMC.

[37]  Cleve B. Moler,et al.  Numerical computing with MATLAB , 2004 .

[38]  David A. Padua,et al.  Experience in the Automatic Parallelization of Four Perfect-Benchmark Programs , 1991, LCPC.

[39]  Larry Smarr,et al.  Supercomputing and the transformation of science , 1993 .

[40]  R W Cox,et al.  AFNI: software for analysis and visualization of functional magnetic resonance neuroimages. , 1996, Computers and biomedical research, an international journal.

[41]  Janice Singer,et al.  How do scientists develop and use scientific software? , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[42]  J. Gregory Morrisett,et al.  Ilea: inter-language analysis across java and c , 2007, OOPSLA.

[43]  Gaurav Sharma,et al.  MATLAB®: A Language for Parallel Computing , 2009, International Journal of Parallel Programming.

[44]  Martyn Plummer,et al.  JAGS: Just Another Gibbs Sampler , 2012 .

[45]  Martin C. Rinard,et al.  Probabilistic accuracy bounds for perforated programs: a new foundation for program analysis and transformation , 2011, PEPM '11.

[46]  Jack J. Dongarra,et al.  Automatically Tuned Linear Algebra Software , 1998, Proceedings of the IEEE/ACM SC98 Conference.

[47]  Cherri M. Pancake,et al.  What users need in parallel tool support: survey results and analysis , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.