This repository contains all the resources needed to reproduce the experimental analyses performed in the article.
The repository is organized into the following directories:
-
data_loading/
- Contains all resources for the experimental analysis of the data loading component.
-
main_memory_data_structures/
- Contains all resources for the experimental analysis of the main memory data structure component.
-
real_script_trials_profiling/
- Contains all resources for profiling real-world experiment trials.
-
storage/
- Contains all resources for the experimental analysis of the storage component.
The cache memoization tool used in the experimental analysis is available at SpeeduPy. For profiling the scripts we used the SpeeduPy version 1.0.1-profiling, while for time measure we used version 1.0.1-time-measure.
The real-world scripts referenced in the article can be found in the following repositories:
- SpeeduPy Experiments (SPEEDUPY_EXPS_REPO)
- Tiny GSGP (TINY_GSGP_REPO)
- DNACC (DNACC_REPO)
- Menger Sponge (MENGER_SPONGE_REPO)
The following table maps the real-world scripts to their corresponding experiment folders:
| Experiment Name | Folder Path |
|---|---|
| Test Laplace Jacobi | SPEEDUPY_EXPS_REPO/04benchproglangs/04benchpl_exp09_iterative_solver_jacobi_OK/ |
| Tiny GSGP | TINY_GSGP_REPO/adapted_for_speedupy/ |
| Count Unique Words | SPEEDUPY_EXPS_REPO/04benchproglangs/04benchpl_exp03_count_unique_words_OK/ |
| Sphere Potentials | DNACC_REPO/adapted_for_speedupy/examples/sphere_potentials/ |
| ssDNA Tethers | DNACC_REPO/adapted_for_speedupy/examples/ssDNA_tethers/ |
| Heap Permutation | SPEEDUPY_EXPS_REPO/01pilots/01pilots_exp05_heap_permutation/ |
| Metropolis Hastings | SPEEDUPY_EXPS_REPO/04benchproglangs/04benchpl_exp07_metropolis_hastings/ |
| Menger Sponge | MENGER_SPONGE_REPO/ |
| Eq Solver | SPEEDUPY_EXPS_REPO/05msrgithubexps/05msrgithubexps_exp03_eq_solver/ |
| Power | SPEEDUPY_EXPS_REPO/01pilots/01pilots_exp02_power/ |
To perform any of the real script analyses presented in the article, you must install the real-world experiments. Visit each repository listed in the Experiment Folder Mapping section and follow the setup instructions provided in the README.md files of the corresponding projects.
To reproduce the profiling performed on the real-world experiment trials follow the instructions available in the real_script_trials_profiling/README.md.
All analyses were conducted using SpeeduPy release v1.0.1-time-measure. To set it up, follow these steps:
- Install Python 3.9 on your machine.
- Download and extract the SpeeduPy release v1.0.1-time-measure.
- Install SpeeduPy by running the following commands:
mv speedupy-1.0.1-time-measure/ speedupy/
cd speedupy/
pip install -r requirements.txt- To reproduce a specific analysis, follow the appropriate link below: