Dynamic Generation of Python Bindings for HPC Kernels
Traditionally, high performance kernels (HPKs) have been written in statically typed languages, such as C/C++ and Fortran. A recent trend among scientists-prototyping applications in dynamic languages such as Python-created a gap between the applications and existing HPKs. Thus, scientists have to e...
Uloženo v:
| Vydáno v: | IEEE/ACM International Conference on Automated Software Engineering : [proceedings] s. 92 - 103 |
|---|---|
| Hlavní autoři: | , , , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
IEEE
01.11.2021
|
| Témata: | |
| ISSN: | 2643-1572 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | Traditionally, high performance kernels (HPKs) have been written in statically typed languages, such as C/C++ and Fortran. A recent trend among scientists-prototyping applications in dynamic languages such as Python-created a gap between the applications and existing HPKs. Thus, scientists have to either reimplement necessary kernels or manually create a connection layer to leverage existing kernels. Either option requires substantial development effort and slows down progress in science. We present a technique, dubbed WayOut, which automatically generates the entire connection layer for HPKs invoked from Python and written in C/C++. WayOut performs a hybrid analysis: it statically analyzes header files to generate Python wrapper classes and functions, and dynamically generates bindings for those kernels. By leveraging the type information available at run-time, it generates only the necessary bindings. We evaluate WayOut by rewriting dozens of existing examples from C/C++ to Python and leveraging HPKs enabled by WayOut. Our experiments show the feasibility of our technique, as well as negligible performance overhead on HPKs performance. |
|---|---|
| AbstractList | Traditionally, high performance kernels (HPKs) have been written in statically typed languages, such as C/C++ and Fortran. A recent trend among scientists-prototyping applications in dynamic languages such as Python-created a gap between the applications and existing HPKs. Thus, scientists have to either reimplement necessary kernels or manually create a connection layer to leverage existing kernels. Either option requires substantial development effort and slows down progress in science. We present a technique, dubbed WayOut, which automatically generates the entire connection layer for HPKs invoked from Python and written in C/C++. WayOut performs a hybrid analysis: it statically analyzes header files to generate Python wrapper classes and functions, and dynamically generates bindings for those kernels. By leveraging the type information available at run-time, it generates only the necessary bindings. We evaluate WayOut by rewriting dozens of existing examples from C/C++ to Python and leveraging HPKs enabled by WayOut. Our experiments show the feasibility of our technique, as well as negligible performance overhead on HPKs performance. |
| Author | Gligoric, Milos Erez, Mattan Zhu, Steven AlAwar, Nader |
| Author_xml | – sequence: 1 givenname: Steven surname: Zhu fullname: Zhu, Steven email: stevenzhu@utexas.edu organization: The University of Texas,Austin – sequence: 2 givenname: Nader surname: AlAwar fullname: AlAwar, Nader email: nader.alawar@utexas.edu organization: The University of Texas,Austin – sequence: 3 givenname: Mattan surname: Erez fullname: Erez, Mattan email: mattan.erez@utexas.edu organization: The University of Texas,Austin – sequence: 4 givenname: Milos surname: Gligoric fullname: Gligoric, Milos email: gligoric@utexas.edu organization: The University of Texas,Austin |
| BookMark | eNotj81KAzEYAKMo2NY-gQh5gV2TL__HutZWWmhBPZck_aKBNiu7e9m3V7CnmdPATMlNaQsS8shZzTlzT4v3peIKZA0MeO20sQb0FZlyrZVkQhhxTSagpai4MnBH5n2fA5PWSmmcnhD1MhZ_zpGusGDnh9wW2ia6H4fvP3vO5ZjLV09T29H1vqEb7Aqe-ntym_ypx_mFM_L5uvxo1tV2t3prFtvKgzVD5Zy3LDAujimC8zKKCCEChMSYj9JrjdYrFYJJoBT6BNYFMNqkhMakIGbk4b-bEfHw0-Wz78bD5VL8AqUUSD0 |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1109/ASE51524.2021.9678726 |
| 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://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 1665403373 9781665403375 |
| EISSN | 2643-1572 |
| EndPage | 103 |
| ExternalDocumentID | 9678726 |
| Genre | orig-research |
| GrantInformation_xml | – fundername: National Science Foundation funderid: 10.13039/100000001 – fundername: National Nuclear Security Administration funderid: 10.13039/100006168 |
| GroupedDBID | 29I 6IE 6IF 6IH 6IK 6IL 6IM 6IN 6J9 AAJGR AAWTH ABLEC ACREN ADYOE ADZIZ AFYQB ALMA_UNASSIGNED_HOLDINGS AMTXH APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO IEGSK IPLJI M43 OCL RIE RIL |
| ID | FETCH-LOGICAL-a287t-99a80b013dfc29a4c3c2bc22bf00ac4a66e8a55bb7f255eaf289b2767ffe77fb3 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 3 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000779309000011&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 27 03:02:55 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a287t-99a80b013dfc29a4c3c2bc22bf00ac4a66e8a55bb7f255eaf289b2767ffe77fb3 |
| PageCount | 12 |
| ParticipantIDs | ieee_primary_9678726 |
| PublicationCentury | 2000 |
| PublicationDate | 2021-Nov. |
| PublicationDateYYYYMMDD | 2021-11-01 |
| PublicationDate_xml | – month: 11 year: 2021 text: 2021-Nov. |
| PublicationDecade | 2020 |
| PublicationTitle | IEEE/ACM International Conference on Automated Software Engineering : [proceedings] |
| PublicationTitleAbbrev | ASE |
| PublicationYear | 2021 |
| Publisher | IEEE |
| Publisher_xml | – name: IEEE |
| SSID | ssib048844796 ssj0051577 |
| Score | 2.1850228 |
| Snippet | Traditionally, high performance kernels (HPKs) have been written in statically typed languages, such as C/C++ and Fortran. A recent trend among... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 92 |
| SubjectTerms | bindings C++ languages Codes dynamic program analysis Generators Graphics processing units high performance kernels Hybrid power systems Kernel Python |
| Title | Dynamic Generation of Python Bindings for HPC Kernels |
| URI | https://ieeexplore.ieee.org/document/9678726 |
| WOSCitedRecordID | wos000779309000011&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LSwMxEB7a4sFT1VZ8k4NHt82m2SR71NpSEMqCCr2VJDuBXnalD8F_bza7rQhevIWBhDBJZjKTfPMB3FsuZe7iOMqpSSKuhI1Uokw4V5whR-poIJuQ87laLNKsBQ8HLAwihs9nOKia4S0_L-2uSpUNU29ZJRNtaEspaqzWfu_4fch5KB1XW2HvpqVsEDsxTYePrxMvYlUWhcWDZqBfjCrBoUy7_5vKCfR_kHkkO_icU2hhcQbdPTUDaU5qD5Lnmmme1GWlK-2T0pHsqyoVQJ5WAcuyIf7GSmbZmLzguvBOsg_v08nbeBY1DAmR9pHONkpTrUImM3eWpZrbkWXGMmYcpdpyLQQqnSTGSOdDB9TOh1eGSSGdQymdGZ1DpygLvACiE2EtUqNtyjnLrfYdnRDSKKTUWLyEXqWF5UddBGPZKODqb_E1HFeKrkF7N9DZrnd4C0f2c7varO_Cyn0DbaeYxg |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LSwMxEB5qFfRUtRXf5uDRbdM0m-wetbZUWsuCFXorSXYCvWylD8F_bza7rQhevIVAQvjymMwk33wA94ZLmdp2O0ipDgMeCRNEYaT9vuIMOVJLvdiEHI-j6TROKvCw48Igov98hs286N_y04XZ5KGyVuxOVsnEHuyHnDNasLW2q8etRM598rjiHHaGWsqSs9OmcevxreeqWB5HYe1m2dUvTRVvUvq1_w3mGBo_3DyS7KzOCVQwO4XaVpyBlHu1DuFzoTVPisTSOf5kYUnylScLIE9zz2ZZEXdnJYOkS4a4zJyZbMB7vzfpDoJSIyFQztdZB3GsIh_LTK1hseKmY5g2jGlLqTJcCYGRCkOtpXXOAyrrHCzNpJDWopRWd86gmi0yPAeiQmEMUq1M7NBNjXINrRBSR0ipNngB9RyF2UeRBmNWAnD5d_UdHA4mr6PZ6GU8vIKjHPSCwncN1fVygzdwYD7X89Xy1s_iN5HJnA0 |
| 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%3Ajournal&rft.genre=proceeding&rft.title=IEEE%2FACM+International+Conference+on+Automated+Software+Engineering+%3A+%5Bproceedings%5D&rft.atitle=Dynamic+Generation+of+Python+Bindings+for+HPC+Kernels&rft.au=Zhu%2C+Steven&rft.au=AlAwar%2C+Nader&rft.au=Erez%2C+Mattan&rft.au=Gligoric%2C+Milos&rft.date=2021-11-01&rft.pub=IEEE&rft.eissn=2643-1572&rft.spage=92&rft.epage=103&rft_id=info:doi/10.1109%2FASE51524.2021.9678726&rft.externalDocID=9678726 |