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...

Full description

Saved in:
Bibliographic Details
Published in2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC) pp. 1 - 12
Main Authors Rubio-González, Cindy, Nguyen, Cuong, Nguyen, Hong Diep, Demmel, James, Kahan, William, Sen, Koushik, Bailey, David H., Iancu, Costin, Hough, David
Format Conference Proceeding
LanguageEnglish
Published New York, NY, USA ACM 17.11.2013
SeriesACM Conferences
Subjects
Online AccessGet full text
ISBN9781450323789
1450323782
ISSN2167-4329
DOI10.1145/2503210.2503296

Cover

Abstract 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%.
AbstractList 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%.
Author Nguyen, Hong Diep
Sen, Koushik
Rubio-González, Cindy
Kahan, William
Bailey, David H.
Nguyen, Cuong
Demmel, James
Hough, David
Iancu, Costin
Author_xml – sequence: 1
  givenname: Cindy
  surname: Rubio-González
  fullname: Rubio-González, Cindy
  email: rubio@cs.berkeley.edu
  organization: UC Berkeley
– sequence: 2
  givenname: Cuong
  surname: Nguyen
  fullname: Nguyen, Cuong
  email: nacuong@cs.berkeley.edu
  organization: UC Berkeley
– sequence: 3
  givenname: Hong Diep
  surname: Nguyen
  fullname: Nguyen, Hong Diep
  email: hdnguyen@cs.berkeley.edu
  organization: UC Berkeley
– sequence: 4
  givenname: James
  surname: Demmel
  fullname: Demmel, James
  email: demmel@cs.berkeley.edu
  organization: UC Berkeley
– sequence: 5
  givenname: William
  surname: Kahan
  fullname: Kahan, William
  email: wkahan@cs.berkeley.edu
  organization: UC Berkeley
– sequence: 6
  givenname: Koushik
  surname: Sen
  fullname: Sen, Koushik
  email: ksen@cs.berkeley.edu
  organization: UC Berkeley
– sequence: 7
  givenname: David H.
  surname: Bailey
  fullname: Bailey, David H.
  email: dhbailey@lbl.gov
  organization: Lawrence Berkeley National Laboratory
– sequence: 8
  givenname: Costin
  surname: Iancu
  fullname: Iancu, Costin
  email: cciancu@lbl.gov
  organization: Lawrence Berkeley National Laboratory
– sequence: 9
  givenname: David
  surname: Hough
  fullname: Hough, David
  email: david.hough@oracle.com
  organization: Oracle Corporation
BookMark eNqNj01PAyEURTHWxNrO2oV_wM1UHjA8WJrGr6RJu9A1AQoJ6gxm0IX_Xmpn5crVzcl59yX3gsyGPARCLoGuAER3wzrKWYXf1PKENBpVFZU4Kn36h2dkzkBiK-rxOWlKeaWUAusEUjUny90YfOrzkPJXWZKzaN9LaKZckJf7u-f1Y7vZPjytbzetZQI_28i57LxyGoOOEaMDK5lgWovIIyB1HjTsBddOcXDeg3Ai7NFLZxXwSPmCXB3_phCC-RhTb8dvIxWikAe7Olrre-NyfisGqDlMN9N0M003bkwh1sL1Pwv8B-HUU28
ContentType Conference Proceeding
Copyright 2013 ACM
Copyright_xml – notice: 2013 ACM
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1145/2503210.2503296
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Xplore POP ALL
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList

Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 9781450323789
1450323782
EndPage 12
ExternalDocumentID 6877460
Genre orig-research
GroupedDBID 6IE
6IF
6IK
6IL
6IN
AAJGR
ACM
ADPZR
ALMA_UNASSIGNED_HOLDINGS
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
GUFHI
IEGSK
IERZE
OCL
RIE
RIL
6IH
AAWTH
ABLEC
ADZIZ
CHZPO
IPLJI
ID FETCH-LOGICAL-a247t-f3365c8b97e9ff7fb1a6242994f3f170bc191d439b831bcc14b4ed7c6ba813f03
IEDL.DBID RIE
ISBN 9781450323789
1450323782
ISSN 2167-4329
IngestDate Wed Aug 27 04:44:13 EDT 2025
Wed Jan 31 06:48:08 EST 2024
IsPeerReviewed false
IsScholarly false
Keywords floating-point arithmetic
dynamic program analysis
mixed precision
delta-debugging algorithm
program optimization
Language English
License Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org.
LinkModel DirectLink
MeetingName SC13: International Conference for High Performance Computing, Networking, Storage and Analysis
MergedId FETCHMERGED-LOGICAL-a247t-f3365c8b97e9ff7fb1a6242994f3f170bc191d439b831bcc14b4ed7c6ba813f03
PageCount 12
ParticipantIDs acm_books_10_1145_2503210_2503296_brief
acm_books_10_1145_2503210_2503296
ieee_primary_6877460
PublicationCentury 2000
PublicationDate 20131117
2013-Nov.
PublicationDateYYYYMMDD 2013-11-17
2013-11-01
PublicationDate_xml – month: 11
  year: 2013
  text: 20131117
  day: 17
PublicationDecade 2010
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationSeriesTitle ACM Conferences
PublicationTitle 2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC)
PublicationTitleAbbrev SC
PublicationYear 2013
Publisher ACM
Publisher_xml – name: ACM
SSID ssj0001254708
ssj0003204180
Score 2.029151
Snippet Given the variety of numerical errors that can occur, floating-point programs are difficult to write, test and debug. One common practice employed by...
SourceID ieee
acm
SourceType Publisher
StartPage 1
SubjectTerms Accuracy
Algorithm design and analysis
delta-debugging algorithm
dynamic program analysis
floating-point arithmetic
General and reference -- Cross-computing tools and techniques -- Verification
Heuristic algorithms
Mathematics of computing -- Mathematical analysis -- Mathematical optimization
mixed precision
Numerical analysis
Partitioning algorithms
Performance analysis
program optimization
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
Software and its engineering -- Software notations and tools
Software and its engineering -- Software organization and properties -- Software functional properties -- Formal methods -- Software verification
Theory of computation -- Design and analysis of algorithms -- Mathematical optimization
Theory of computation -- Semantics and reasoning -- Program reasoning -- Program verification
Tuning
Subtitle tuning assistant for floating-point precision
Title Precimonious
URI https://ieeexplore.ieee.org/document/6877460
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV3LSsNAFB3arlxVbcX6IoLgxkkzrzx0KZYiVLpoobswM5mBoqalJhu_3rlJWh8IukoyZDHcmXDP3NxzDkJXbk1JKGiChaEWg6IcltZQDOp0sZZS0RDYyJOncDznjwuxaKGbHRfGGFM1nxkfbqt_-dlKl1AqG4axAyuhO6C3oyipuVpf6imCR41ODTwzGnBSGafRStqb0aRR9iFcDF3iB_KKX11BsL8t9es3g5Uqv4y6aLKdWd1W8uyXhfL1-w_Rxv9OfR_1P5l83nSXow5Qy-SHqLu1cvCaL7uH7qagcuG2JLTE3nqzEsolngPWAC_zwnPQ1rMvKwlN0ni9Wrqh9aax5-mj-ehhdj_Gja8ClpRHBbaMhULHKokMVGytIhJYIknCLbMkCpR2h7jMIRUVM6K0Jlxxk0U6VDImzAbsCHXyVW6OkZdpl94sk5Rwzbk1Di5mhsWxFjRLFAsG6NIFNoUDw1tac6BF2gQ_bYI_QNd_vpOqzdLYAepBZNN1LcSRNkE9-X34FO1R8K6oiINnqFNsSnPuEEShLqqt8wEiTrzE
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LT8JAEJ4gHvSECkZ81sTEi0X21YcejQQVCAdIuDW7292EqECwXPz17pSCj5joqe2mh2a6zXwzne_7AC7cOyWBoLEvDLU-Ksr50hrqozpdpKVUNEA2crcXtIf8cSRGJbhac2GMMfnwmWngaf4vP53qBbbKroPIgZXAFeibwlUV4ZKt9aWjInhYKNXgNaNNTnLrNJqLezMaF9o-hItrl_qRvtLIjyjZvyH16zeLlTzDtCrQXT3bcrDkubHIVEO__5Bt_O_D70Dtk8vn9ddZahdKZrIHlZWZg1d821W47aPOhduUOBR74w0W2DDxHLRGgDnJPAduPfsylTgm7c-mY7c0mxcGPTUYtu4Hd22_cFbwJeVh5lvGAqEjFYcGe7ZWEYk8kTjmllkSNpV2ZVzqsIqKGFFaE664SUMdKBkRZptsH8qT6cQcgJdql-Ask5Rwzbk1DjCmhkWRFjSNFWvW4dwFNsGS4S1ZsqBFUgQ_KYJfh8s_70nUfGxsHaoY2WS2lOJIiqAe_r58BlvtQbeTdB56T0ewTdHJIqcRHkM5my_MicMTmTrNt9EHQ1XAFQ
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+International+Conference+on+High+Performance+Computing%2C+Networking%2C+Storage+and+Analysis&rft.atitle=Precimonious&rft.au=Rubio-Gonz%C3%A1lez%2C+Cindy&rft.au=Nguyen%2C+Cuong&rft.au=Nguyen%2C+Hong+Diep&rft.au=Demmel%2C+James&rft.series=ACM+Conferences&rft.date=2013-11-17&rft.pub=ACM&rft.isbn=9781450323789&rft.spage=1&rft.epage=12&rft_id=info:doi/10.1145%2F2503210.2503296
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2167-4329&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2167-4329&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2167-4329&client=summon