Skip to main content

Custom Math Functions for High Performance Computing

Implementations of various transcendental math functions, including "erfc", with no conditional branches.

Date Posted: May 10, 2006

alphaworks tab navigation

1. Who could use these math functions?

A scientist, engineer, or application integration specialist needing to implement an application where the viability depended on the performance of the math functions. Typical applications involve three-dimensional time-series modelling: for example, optimizing vehicle and engine design, investigating interactions between biomolecules, and weather modeling.

2. Why these implementations, rather than (for example) "libm" or "gsl"?

Functions in system libraries are usually implemented for accuracy and generality; for example, the "sine" function would likely give you the sine of every angle representable as a double-precision number, accurate to one least-significant bit. But for a particular modeling application, you may know that you are dealing only with angles within a restricted range (for example, "up to one complete turn"); and you may know that "five significant figures" will be at least as precise as other approximations in the model. In the case where "time to solution" or "cost to solution" depends on the performance of the math functions, these implentations can make the difference between a mere research tool and commercial viability.

3. What has IBM used these functions for?

These functions have been used to support the IBM BlueGene Science program, implementing an all-atoms model of Rhodopsin (a protein involved in the process of vision) on a 16384-processor supercomputer. As well as testing that the "high performance" sine function produces results that match the "system library" sine function, the IBM scientists will validate that the protein model produces results that are physically credible and that match a version of the model using "system library" functions for a small number of time steps.

4. On what processor architectures has IBM used these math functions?

IBM has used these functions on "Book E" PowerPC processors, specifically the "440" and "440d" embedded processors. The IBM xlC compiler succeeds in generating optimized object code from this source code and in exploiting the SIMD extensions in the 440d.

5. What if I need the use of a supercomputer, application integration skills, or a warranty?

Your IBM salesman is always pleased to discuss your need for IBM's professional services.

Trademarks