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...
Saved in:
| Published in: | IEEE/ACM International Conference on Automated Software Engineering : [proceedings] pp. 92 - 103 |
|---|---|
| Main Authors: | , , , |
| Format: | Conference Proceeding |
| Language: | English |
| Published: |
IEEE
01.11.2021
|
| Subjects: | |
| ISSN: | 2643-1572 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| 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 (IEL) (UW System Shared) IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE 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/eLvHCXMwlV1Na8JAEB1UeujJtlr6zR56bNQkm2z22FpFaJFAP_Amu-MueIklaqH_vrObaCn00lvYQwhvJzP7JnlvAG6JT0uFlgdWIw8o-yWBMpLIClI0SW4y5c103p_FdJrNZjJvwN1eC2OM8T-fmZ679N_yFyvculZZX1JmFVHahKYQaaXV2sUOxSHn3jquysJUpoWoFTvhQPbvX0a0FLkuShT26hv9mqjiC8q4_b9HOYLujzKP5fuacwwNU5xAezeagdVvageSx2rSPKtspR36bGVZ_uWsAtjD0mtZ1oxOrGySD9mTKQsqkl14G49eh5OgnpAQKGI6m0BKlflO5sIiYc4xxkhjFGk7GCjkKk0J7CTRWliiDkZZolc6Eqmw1ghhdXwKrWJVmDNgKkxQ2jAxWWw4hphpiXJh6URCWxen6hw6DoX5R2WCMa8BuPh7-RIOHdCVaO8KWptya67hAD83y3V543fuG5hrmFQ |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NT8JAEJ0gmugJFQx-78GjhXa77XaPihAMSJqIhhvZXXYTLsXwYeK_d7otGBMv3po9NM3b6cy-ad8bgDvk00JqyzyrNPMw-0WeNALJisZoEswk0pnpvA_5aJRMJiKtwP1OC2OMcT-fmVZ-6b7lzxZ6k7fK2gIzK6fxHuxHjFG_UGttowcjkTFnHlfkYSzUnJeancAX7YfXLi7RvI9Cg1Z5q18zVVxJ6dX-9zDH0PjR5pF0V3VOoGKyU6hthzOQ8l2tQ_RUzJonhbF0jj9ZWJJ-5WYB5HHu1CwrgmdW0k87ZGCWGZbJBrz1uuNO3ytnJHgSuc7aE0Imrpc5sxpRZzrUVGlKlfV9qZmMY4Q7ipTiFsmDkRYJlqI85tYazq0Kz6CaLTLTBCKDSAsbRCYJDdOBTpTQYmbxTIKbF8byHOo5CtOPwgZjWgJw8ffyLRz2xy_D6fB5NLiEoxz0QsJ3BdX1cmOu4UB_ruer5Y3bxW-3mZub |
| 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 |