Precimonious tuning assistant for floating-point precision
Given the variety of numerical errors that can occur, floating-point programs are difficult to write, test and debug. One common practice employed by developers without an advanced background in numerical analysis is using the highest available precision. While more robust, this can degrade program...
Saved in:
Published in | 2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC) pp. 1 - 12 |
---|---|
Main Authors | , , , , , , , , |
Format | Conference Proceeding |
Language | English |
Published |
New York, NY, USA
ACM
17.11.2013
|
Series | ACM Conferences |
Subjects |
Software and its engineering
> Software creation and management
> Software development process management
Software and its engineering
> Software creation and management
> Software verification and validation
> Formal software verification
Software and its engineering
> Software creation and management
> Software verification and validation
> Software defect analysis
> Software testing and debugging
|
Online Access | Get full text |
ISBN | 9781450323789 1450323782 |
ISSN | 2167-4329 |
DOI | 10.1145/2503210.2503296 |
Cover
Summary: | Given the variety of numerical errors that can occur, floating-point programs are difficult to write, test and debug. One common practice employed by developers without an advanced background in numerical analysis is using the highest available precision. While more robust, this can degrade program performance significantly. In this paper we present Precimonious, a dynamic program analysis tool to assist developers in tuning the precision of floating-point programs. Precimonious performs a search on the types of the floating-point program variables trying to lower their precision subject to accuracy constraints and performance goals. Our tool recommends a type instantiation that uses lower precision while producing an accurate enough answer without causing exceptions. We evaluate Precimonious on several widely used functions from the GNU Scientific Library, two NAS Parallel Benchmarks, and three other numerical programs. For most of the programs analyzed, Precimonious reduces precision, which results in performance improvements as high as 41%. |
---|---|
ISBN: | 9781450323789 1450323782 |
ISSN: | 2167-4329 |
DOI: | 10.1145/2503210.2503296 |