Dynamic generation of Python bindings for HPC kernels
dc.contributor.advisor | Gligoric, Milos | |
dc.creator | Zhu, Junlin Steven | |
dc.date.accessioned | 2021-09-02T22:11:20Z | |
dc.date.available | 2021-09-02T22:11:20Z | |
dc.date.created | 2021-05 | |
dc.date.issued | 2021-05-07 | |
dc.date.submitted | May 2021 | |
dc.date.updated | 2021-09-02T22:11:21Z | |
dc.description.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, WayOut 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. | |
dc.description.department | Electrical and Computer Engineering | |
dc.format.mimetype | application/pdf | |
dc.identifier.uri | https://hdl.handle.net/2152/87408 | |
dc.identifier.uri | http://dx.doi.org/10.26153/tsw/14357 | |
dc.language.iso | en | |
dc.subject | Python | |
dc.subject | C++ | |
dc.subject | High performance kernels | |
dc.subject | Bindings | |
dc.subject | Dynamic program analysis | |
dc.title | Dynamic generation of Python bindings for HPC kernels | |
dc.type | Thesis | |
dc.type.material | text | |
thesis.degree.department | Electrical and Computer Engineering | |
thesis.degree.discipline | Electrical and Computer Engineering | |
thesis.degree.grantor | The University of Texas at Austin | |
thesis.degree.level | Masters | |
thesis.degree.name | Master of Science in Engineering |