
This is the artifact to the paper "HiPy: Extracting High-Level Semantics From Python Code For Data Processing" which provides the source code of HiPy as well as tooling, benchmarks, and Docker images to reproduce the experiments shown in the paper. v1.1: Increase memory limit from 30 GiB to 40 GiB to include some safety margin. Hardware Dependencies x86-64 machine with recent Linux (tested: Ubuntu 24.04 with Linux kernel 6.8.0), Docker, and make installed. Experiments need ~25 GiB disk space and ~40 GiB main memory. Getting Started Change into the paper directory (cd paper) Extract images from the archive: make load-images Run all benchmarks once (~20–30 minutes): make run-benchmarks WARMUP_RUNS=0 RUNS=1 Plot the results: make plot. You will find both the raw results (results.csv) as well as the four figures in the results directory. Step By Step Instructions Change into the paper directory (cd paper) Extract images from the archive:[^1] make load-images Run all benchmarks 3 times with one warmup run (~1.5–2h): make run-benchmarks WARMUP_RUNS=1 RUNS=3 Plot the results: make plot. You will find both the raw results (results.csv) as well as the four figures in the results directory. Reusability Guide The benchmarking setup can be extended for future research on how to improve runtime of different Python workloads. The setup can be easily extended with both competitor implementations and new benchmarks. To add a new benchmark, a new folder should be created at the benchmarks directory, which can be adapted from the existing benchmarks. Furthermore, the benchmark must be added in the run.py file. The Docker images can be rebuilt with the provided Makefile using make build-images. In addition, this artifact can also be used for experimenting with the implementation of HiPy (though we plan to open source and further develop HiPy). One can run Python programs with HiPy using the docker container through the Makefile target make run FILE=.... We also included two demo files that print the generated IR: make run FILE=demo.py executes a simple example that computes the prime numbers below 100. make run FILE=demo-pandas.py contains a more complex example, also utilizing pandas and numpy. Help/Options Please consult the help target of the Makefile located at paper/Makefile for more options. [^1]: Alternatively, images can be built from source: make build-images
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 1 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
