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...
Gespeichert in:
| Veröffentlicht in: | IEEE/ACM International Conference on Automated Software Engineering : [proceedings] S. 92 - 103 |
|---|---|
| Hauptverfasser: | , , , |
| Format: | Tagungsbericht |
| Sprache: | Englisch |
| Veröffentlicht: |
IEEE
01.11.2021
|
| Schlagworte: | |
| ISSN: | 2643-1572 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| 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 Proceedings Order Plan All Online (POP All Online) 1998-present by volume 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/eLvHCXMwlV3LagIxFL2odNGVbbX0TRZddnQmxjyWrVWEFhnoA3eSxBtwMxYfhf59k8xoKXTT3RCYIdxkcnNucs4BuOUapWPh1F_bNGHSZInfJ-tEKq5pplPmolvD-7OYTOR0qvIa3O25MIgYL59hJzzGs_z50m5Dqayr_MoqKK9DXQhecrV2c8fPQ8aidFy5Cvs0LUTF2MlS1b1_GfomGqooNOtUH_rlqBITyqj5v64cQfuHmUfyfc45hhoWJ9DcWTOQ6k9tQf-xdJonpax0iD5ZOpJ_BakA8rCIXJY18TtWMs4H5AlXhU-SbXgbDV8H46RySEi0RzqbRCktYyVz7ixVmtmepcZSalyaass05yh1v2-McB46oHYeXhkquHAOhXCmdwqNYlngGRCFLtjhCj63QZVPexyEUlrrPKLwb4tzaIUozD5KEYxZFYCLv5sv4TAEuiTtXUFjs9riNRzYz81ivbqJI_cN6l-Xmg |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3LSgMxFL3UKuiqaiu-zcKl086kmTyWPloqrWXAKt2VJE2gm6n0Ifj3JplpRXDjbgjMEG4yuTk3OecA3FJpuCX-1F_qOCJcJZHbJ8uICypxImNig1vD-4ANh3w8FlkF7rZcGGNMuHxmmv4xnOVP53rtS2Ut4VZWhukO7KaE4Lhga21mj5uJhATxuGIddomasZKzk8Sidf_acU3Y11Fw0iw_9ctTJaSUbu1_nTmExg83D2XbrHMEFZMfQ21jzoDKf7UO6VPhNY8KYWkffzS3KPvyYgHoYRbYLEvk9qyolz2ivlnkLk024K3bGT32otIjIZIO66wiISQPtcyp1VhIotsaK42xsnEsNZGUGi7TVClmHXgw0jqApTCjzFrDmFXtE6jm89ycAhLGekNcRqfa6_JJh4QM51pbhync2-wM6j4Kk49CBmNSBuD87-Yb2O-NXgaTwfOwfwEHPugFhe8SqqvF2lzBnv5czZaL6zCK3wBsmuE |
| 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 |