Workshop: Reliable and Reproducible Computing


Keynote speaker

Dr P.T.P Tang
Intel Corporation (USA)

Dr P.T.P Tang, SIAM fellow, is a senior principal engineer in Intel Corporation (USA). He obtained his PhD in Mathematics from University of California, Berkeley in 1987, working with Professor William Kahan, a Turing Award winner. After several years research in Argonne National Laboratory and Lawrence Berkeley National Laboratory. He is a senior principal engineer in Intel Corporation USA.

He was one of the committee member for the IEEE 754 standard for floating-point arithmetic. He was involved in co-design the compute unite of the famous Anton2 supercomputer for MD simulation by the D.E. Shaw research. He developed a new framework for low-communication FFT and won the best paper in Supercomputing 2012. He is one of the co-recipient of the Gordon Bell prize 2014. He has 13 US patents, published more than 20 publications in refereed journals and co-authored one book.

He was elected to be a fellow of Society of Industry and Applied Mathematics (SIAM) in 2015 due to his contribution in scientific computing infrastructure including floating-point arithmetic, elementary-function computations, low-communication FFT and in transferring technology from academia to industry. He is a member of SIAM Fellows Selection Committee.

Aim of the workshop

The workshop aims to provide a systematic training to students on basic floating-point arithmetic by one of the leading industry researchers. The training will supply a practical guide to design, analysis, and implementation of computational algorithms in an accurate way including some instances that can guarantee reproducible results at extreme scale computing.

The workshop will expose students some leading industry research and promote the communication between education and industry.

Learning out comes

  • Be aware of the fundamental differences between practical numerical computing and (theoretical) mathematical operations.
  • Familiarise with the IEEE-754 and IEEE-754-2008 standardization on floating points operations, its formats, and environment. Familiarise with some robust libraries for some popular (elementary) functions.
  • Have a solid understanding on the principles of floating-point arithmetic, be able to identify potential risks in some extreme conditions which might lead to numerical instability or wrong answers.
  • Be able to design, analyze, and implement computational algorithms in a correct way. Be able to program some simple routines which can achieve certain commercial software standard.

Method of Teaching and Learning

The short course consists of 3 2-hour lectures. It also includes some demos and hands-on programming exercises. The students are expect to know some basic programming languages like Matlab.

The lectures consist of 7 sections on fundamentals and two optional sections. Undergraduates are recommended to take the first 2 lectures do some simple programming.

Students who seek SURF project for next summer are recommended to take the all the lectures, in particular, section 6-7 and the optional sections which are closely related to on-going cutting-edge research.


October 28th, 9:30 - 11:30am

  • Section 1 Motivating examples on strange computing behavior
  • Section 2 Brief history of the IEEE-754 standard and the IEEE-754-2008 standard
  • Section 3 IEEE-754 binary arithmetic: formats, environment and basic properties
  • (Optional) IEEE-754-2008 decimal arithmetic

October 29th, 9:30 - 11:30am

  • Section 4 Further examples to understand floating-point idiosyncrasies
  • Section 5 Basic technique in rounding error analysis: strategic classification of errors, relative and absolute error model on floating point analysis, and computer-aided method in estimation of rounding errors.

October 31st, 12:30 - 2:30pm

  • Section 6 Accurate summations in floating-points: two-sums, n-sums, faithful summations,
  • Section 7 Accurate 2 norm computation of long vector
  • (Optional) Recent methods in reproducible sums.