{"id":24964632,"url":"https://github.com/qfettes/reclaimer","last_synced_at":"2025-07-22T06:08:05.411Z","repository":{"id":263186439,"uuid":"482134299","full_name":"qfettes/reclaimer","owner":"qfettes","description":"Repository for reclaimer paper code","archived":false,"fork":false,"pushed_at":"2022-04-16T02:23:46.000Z","size":17605,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-21T09:06:07.611Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qfettes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-16T02:23:02.000Z","updated_at":"2022-04-16T02:24:01.000Z","dependencies_parsed_at":"2024-11-16T20:35:59.240Z","dependency_job_id":null,"html_url":"https://github.com/qfettes/reclaimer","commit_stats":null,"previous_names":["qfettes/reclaimer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qfettes/reclaimer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfettes%2Freclaimer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfettes%2Freclaimer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfettes%2Freclaimer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfettes%2Freclaimer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qfettes","download_url":"https://codeload.github.com/qfettes/reclaimer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qfettes%2Freclaimer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261095311,"owners_count":23108784,"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":[],"created_at":"2025-02-03T10:17:07.493Z","updated_at":"2025-06-21T09:06:17.771Z","avatar_url":"https://github.com/qfettes.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Foreword\nThe following code depends on old versions of DSB. Docker-compose, as it is used in these scripts, will attempt to pull docker images which may not be hosted at some point in the future. For preservation, we include the version of DeathStarBench which we used for these experiments (all credit to the original repository, https://github.com/delimitrou/DeathStarBench). The original images will be possible to build manually from the code provided (instructions below). Docker images from other open-source projects are also used by DeathStarBench (e.g. mongoDB). The code for those is not available in this repository, and if they become unavailable in the future, we recommend using a newer version of these images.\n\nTo modify the docker images used by the applications, refer to:\n- Social Media Service: ./Sinan/benchmarks/socialNetwork-ml-swarm/docker-compose.yml\n- Hotel Reservation Service: ./DeathStarBench/hotelReservation/docker-compose.yml\n\n## Building DSB \nThe two application from DeathStarBench used by Recalimer are located at the following paths:\n- ./Sinan/benchmarks/socialNetwork-ml-swarm/\n- ./DeathStarBench/hotelReservation/\n\nThe original authors of DeathStarBench provide a DOCKERFILE and docker-compose files to build and deploy those application. To build an application, use the following command:\n\n`docker build -t qfettes/social-network-microservices`\n\nFollow up by replacing the images in docker-compose.yml with the image you built, for each application you rebuild them for. \n\n## Using a newer version of DSB\nReclaimer should function as intended with newer versions of DSB. However, the current names of docker containers are hardcoded throughout DeepRL/utils/dsb_utils/dsb_ctrl.py, and the number of containers are hardcoded throughout DeepRL/utils/dsb_utils/dsb_ctrl.py, /home/qfettes/code/reclaimer/DeepRL/customEnvs/gym-dsb/gym_dsb/envs/dsb_social_media.py, DeepRL/utils/wrappers.py, and DeepRL/agents/SAC.py. \n\n# System Requirements\nAll experiments are performed on a server with dual socket, Intel Xeon Gold 6230N 20-core, 40-thread CPUs, and two Tesla V100 GPUs. The operating system is Ubuntu 20.04.4 LTS. The CPU driver is set to acpi-cpufreq, and is set to use the performance governor with CPU frequency boosting enabled. The GPU driver is 510.54, with CUDA version 11.6. The docker version is 20.10.13, build a224086, and the docker-compose version is 1.29.2, build 5becea4c. we used gcc 9.4.0, cmake version 3.16.3, and GNU Make 4.2.1.\n\n## Changing your CPU driver\nWhile instructions may change, at the time of writing [this](https://silvae86.github.io/2020/06/13/switching-to-acpi-power/#changing-to-acpi-cpufreq-cpu-management-driver) guide was used to set the appropriate CPU DRIVE\n\n## Installing DeathStarBench\n- Navigate to the official [DeathStarBench repository](https://github.com/delimitrou/DeathStarBench) and clone the repository to ./DeathStarBench\n- Follow all install instructions given in their readme\n\n### Add your username to the docker group (avoids repeated use of sudo)\n`sudo groupadd docker`\n\n`sudo gpasswd -a \u003cyour username\u003e docker`\n\n`sudo service docker restart`\n\n## Packages to install via apt\n- cpufrequtils==008-1.1 (used to set cpugovernor)\n- docker==1.5-2\n- docker-compose==1.25.0-1\n- python3\n- libssl-dev==1.1.1f-1ubuntu2.12\n- zlib1g-dev==1:1.2.11.dfsg-2ubuntu1.2\n- luarocks==2.4.2+dfsg-1\n\n## Python Packages\n- See requirements.txt\n- Additionally, openai baselines (tf2 branch) is required to provide some openai gym environment wrappers. The commit version is at the following URL (https://github.com/openai/baselines/tree/tf2)\n- Finally traverse to DeepRL/customEnvs/gym-dsb and execute `pip install -e .`\n\n## luarocks packages\n`luarocks install luasocket`\n\n# After Installation\n`cd DeepRL`\n- Follow the README in that directory to execute experiments\n\n# Additional Notes\n- TO view the mechanisms for interacting with DSB and modifying this code to work with other applications, see code/reclaimer/DeepRL/utils/dsb_utils/dsb_ctrl.py \n- To view the wrapper as a gym environment for ease of use with RL algorithms, see code/reclaimer/DeepRL/customEnvs/gym-dsb\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqfettes%2Freclaimer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqfettes%2Freclaimer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqfettes%2Freclaimer/lists"}