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žené v:
| Vydané v: | IEEE/ACM International Conference on Automated Software Engineering : [proceedings] s. 92 - 103 |
|---|---|
| Hlavní autori: | , , , |
| Médium: | Konferenčný príspevok.. |
| Jazyk: | English |
| Vydavateľské údaje: |
IEEE
01.11.2021
|
| Predmet: | |
| ISSN: | 2643-1572 |
| On-line prístup: | Získať plný text |
| Tagy: |
Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
|
| 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/IET Electronic Library IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE/IET Electronic Library (IEL) (UW System Shared) 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/eLvHCXMwlV3PS8MwGP3YhgdPUzfxNzl4tFua_khy1LkxEEZBhd1GkiawSyf7Ifjf-yXtJoIXbyWHUr6keXlf-94DuHdUKu5EHDHlZJRqmXrL2ySiUjPuLAK4cCFsgs9mYj6XRQseDloYa234-cwO_GX4ll-uzM63yoYSd1bO8ja0Oc9rrdZ-7eA6TNNgHVfvwgjTnDeKnZjK4ePrGIeY76KweNDc6FeiSgCUSfd_j3IC_R9lHikOmHMKLVudQXcfzUCaN7UH2XOdNE9qW2lffbJypPjyVgHkaRm0LBuCJ1YyLUbkxa4rBMk-vE_Gb6Np1CQkRAqZzjaSUonQySydYVKlJjFMG8a0o1SZVOW5FSrLtOYOqYNVDukVzkHOnbOcO52cQ6daVfYCSCkMtZIZqUo8IVGheaw1UlVX5sipRHIJPV-FxUdtgrFoCnD19_A1HPtC16K9G-hs1zt7C0fmc7vcrO_CzH0DM9GXww |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3NS8MwHP0xp6CnqZv4bQ4e7ZamH0mOOjcmm6PghN1GkiawSyf7EPzvTdJuInjxVnIo5Zc0L-_XvvcA7g3mghoWBkQYHsSSx87yNgowl4QabQGcGR82QcdjNp3yrAYPOy2M1tr_fKbb7tJ_y88XauNaZR1ud1ZK0j3YT-KY4FKttV09diXGsTePK_dhC9SUVpqdEPPO41vPDhHXRyFhu7rVr0wVDyn9xv8e5hhaP9o8lO1Q5wRqujiFxjacAVXvahOS5zJrHpXG0q7-aGFQ9uXMAtDT3KtZVsieWdEg66KhXhYWJlvw3u9NuoOgykgIhOU664BzwXwvMzeKcBGrSBGpCJEGY6FikaaaiSSRkhpLHrQwlmDZWUipMZpSI6MzqBeLQp8DypnCmhPFRW7PSJhJGkppyarJU8uqWHQBTVeF2UdpgzGrCnD59_AdHA4mr6PZ6GU8vIIjV_RSwncN9fVyo2_gQH2u56vlrZ_Fb0v5mwo |
| 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 |