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

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:IEEE/ACM International Conference on Automated Software Engineering : [proceedings] s. 92 - 103
Hlavní autoři: Zhu, Steven, AlAwar, Nader, Erez, Mattan, Gligoric, Milos
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