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