Survival Guide for Students of Scientific Computing and Numerical Analysis

Dianne P. O'Leary, September 2017

Here is some of the folklore that any serious worker in scientific computing should know:

  • Journals: The premier journals include
  • SIAM Journal on Scientific and Statistical Computing,
  • SIAM Journal on Numerical Analysis,
  • Mathematics of Computation,
  • ACM Transactions on Mathematical Software,
  • J. of Computational Physics,
  • J. of Computational Biology,
  • various journals entitled IEEE Transactions on ....
  • There is a nice magazine called Computing in Science and Engineering published by the IEEE and the AIP. Other journals to watch include Parallel Computing, as well as applications and modeling journals.

  • Standard Reference Books: Some of the quality books of the field are:
  • Michael T. Heath, Scientific Computing: An Introductory Survey, McGraw Hill, 2002.
  • John H. Mathews and Kurtis D. Fink, Numerical Methods: Using Matlab, Fourth Edition, 2004. Demonstrations and tutorials are included at Numerical Analysis & Methods Project .
  • Cleve B. Moler, Numerical Computing with MATLAB, SIAM Press, 2004.
  • Singiresu S. Rao, Applied Numerical Methods for Engineers and Scientists, Prentice Hall, 2002.
  • Charles F. van Loan, Introduction to Scientific Computing by Prentice Hall, 2000.
  • Dubious software: The series of books called Numerical Recipes... provide simplified versions of many standard numerical algorithms; they work on some problems but are not robust. Linpack, Lapack, and the Matlab codes are to be preferred.

  • Good software at Netlib: Netlib is a public repository for numerical software and related information. Information about the latest additions to the repository are contained in the newsletter SIAM News and in NA-Digest.

  • Linpack: The Linpack project of the 1970's created a set of codes for solving (dense) linear systems and related problems. The documentation is J. Dongarra et al, LINPACK Users' Guide, SIAM Press. These codes are also available through Netlib.

  • Lapack: After 20 or 30 years of use, the Linpack and related Eispack codes for eigenvalue problems were becoming shopworn (so to speak), so a group of researchers undertook the project of unifying the two sets of codes and adapting them to achieve faster performance on very large problems and to reduce the effects of round-off error. The Lapack codes are available through Netlib, and SIAM publishes a user's guide.

  • The Templates Project: For solving large, sparse linear systems, iterative methods are useful. Software and documentation are available at http://www.netlib.org/templates/

  • An inventory of freely available linear algebra software is maintained by Jack Dongarra.

  • The GNU Scientific Library (GSL) is a free numerical library written in C and distributed under the GNU General Public License. I don't have information about its quality.

  • Matlab: Matlab is a commerical product that contains an interface to the Lapack routines, other matrix manipulation routines, and applications packages in graphics, optimization, signal processing, control, and other areas. It is a standard tool for serious computation, and a standard idiom of communication among researchers in the area. Matlab is distributed by The Math Works, Inc., which maintains a public repository of software. There is also a Matlab Digest that is available by e-mail. To subscribe, send a message to matlab-digest-request@mathworks.com. There are many Matlab tutorials; use your search engine on ``matlab tutorial" to locate one.

  • NA-Digest: About once a week, NA-NET News Digest is sent by e-mail to all members its mailing list. This contains information about meetings, current contents of journals, spirited discussions of technical points, and other news. See the NA-Digest archive.

  • Professional Societies: Most researchers in this area are members of SIAM. Most meetings are announced in SIAM News and NA-Digest. SIAM also has many interesting activity groups, including one on Computational Science and Engineering.

  • Internships: A summer internship can be excellent experience to help you sort out career goals and find interesting problems. Check out the SIAM Internship website or the ACM Internship website for some leads. Both of these organizations also have collections of ads for permanent positions, too.

  • Some other useful Websites:
  • Math dictionary
  • Computing dictionary
  • AAAS Professional Ethics Report
  • Some disasters attributable to bad numerical computing (Douglas Arnold)
  • More disasters. (Kees Vuik)
  • More numerical disasters and other bugs. (Thomas Huckle)
  • One weather simulation program + 10 different hardware/software systems = 10 different forecasts.
  • Heisenberg Effects in Computer-Arithmetic arising from the difference in length between registers and words of memory (Walter Gander)
  • MathSciNet index of mathematical publications and reviews.
  • Survival Guide for Optimization