{"id":18498331,"url":"https://github.com/softdevteam/warmup_experiment","last_synced_at":"2025-04-09T00:31:13.105Z","repository":{"id":33290164,"uuid":"36934890","full_name":"softdevteam/warmup_experiment","owner":"softdevteam","description":"Experiment designed to investigate JIT warmup times.","archived":false,"fork":false,"pushed_at":"2019-12-09T09:32:23.000Z","size":981,"stargazers_count":8,"open_issues_count":7,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-23T19:44:53.346Z","etag":null,"topics":["benchmark","benchmarks","experiment","vms"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/softdevteam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-05T13:44:08.000Z","updated_at":"2024-03-03T15:09:09.000Z","dependencies_parsed_at":"2022-08-17T19:50:12.895Z","dependency_job_id":null,"html_url":"https://github.com/softdevteam/warmup_experiment","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fwarmup_experiment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fwarmup_experiment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fwarmup_experiment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softdevteam%2Fwarmup_experiment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softdevteam","download_url":"https://codeload.github.com/softdevteam/warmup_experiment/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247949830,"owners_count":21023397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","benchmarks","experiment","vms"],"created_at":"2024-11-06T13:38:47.078Z","updated_at":"2025-04-09T00:31:08.096Z","avatar_url":"https://github.com/softdevteam.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SoftDev Warmup Experiment\n\nThis is the main repository for the Software Development Team Warmup Experiment\nas detailed in the paper \"Virtual Machine Warmup Blows Hot and Cold\", by Edd\nBarrett, Carl Friedrich Bolz, Rebecca Killick, Sarah Mount and Laurence Tratt.\n\nThe paper is available [here](http://arxiv.org/abs/1602.00602)\n\n\n## Running the warmup experiment\n\nThe script `build.sh` will fetch and build the VMs and the Krun benchmarking\nsystem. Once the VMs are built the `Makefile` contains a target\n`bench-with-reboots` which will run the experiment in full, however, you should\nconsult the Krun documentation (fetched into `krun/` by `build.sh`), as there\nis a great deal of manual intervention needed to compile a tickless kernel,\ndisable Intel P-states, set up `rc.local` etc.\n\nNote that the experiment is designed to run on amd64 machines running Debian 8\nor OpenBSD. Newer versions of Debian do not currently work due to a C++ ABI\nbump which would require a newer C++ compiler (a newer GCC or perhaps clang).\n\nCalling `build.sh` will also install our\n[warmup_stats](https://github.com/softdevteam/warmup_stats) code, which includes\na number of scripts to format benchmark results as plots or tables (similar to\nthose seen in the paper), and diff between results files. `warmup_stats` has a\nnumber of dependencies, some of which are also needed by the code in this\nrepository, in particular:\n\n  * Python 2.7 - the code here is not Python 3.x ready\n  * bzip2 / bunzip2 and bzip2 (including header files)\n  * curl (including header files)\n  * gcc and make\n  * liblzma library (including header files)\n  * Python modules: numpy, pip, libcap\n  * openssl (including header files)\n  * pkg-config\n  * pcre library (including header files)\n  * readline (including header files)\n  * wget\n\nThe [install instructions](https://github.com/softdevteam/warmup_stats/blob/master/INSTALL.md) for `warmup_stats` contain more details.\n\n\n## Print-traced Benchmarks\n\nThe paper mentions that to ensure benchmarks are \"AST deterministic\",  we\ninstrumented them with print statements. These versions can be found alongside\nthe \"proper\" benchmarks under the `benchmarks/` directory.\n\nFor example under `benchmarks/fasta/lua/`:\n\n * `bench.lua` is the un-instrumented benchmark used in the proper experiment.\n * `trace_bench.lua` is the instrumented version.\n\nSpecial notes:\n\n * Java benchmarks have and additional `trace_KrunEntry.java` file as well.\n * Since we cannot distribute Java Richards, a patch is required to derive the\n   tracing version (`patches/trace_java_richards.diff`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftdevteam%2Fwarmup_experiment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftdevteam%2Fwarmup_experiment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftdevteam%2Fwarmup_experiment/lists"}