What is gem5art?
gem5art (libraries for artifacts, reproducibility and testing) is a set of python modules to do experiments with gem5 in a reproducible and structured way.
Do I need celery to run gem5 jobs using gem5art?
Celery is not required to run gem5 jobs with gem5art. You can use any other job scheduling tool or no tool at all. In order to run your job without celery, simply call the run() method of your run object once it is created. For example, assuming created run object (in a launch script) is called run, you can do the following:
Is there a more user-friendly way to launch gem5 jobs?
You can use python multiprocessing library based function calls (provided by gem5art) to launch multiple gem5 jobs in parallel. Specifically, you can call the following function in your gem5art launch script:
run_job_pool([a list containing all run objects to execute], num_parallel_jobs = [Number of parralel jobs])
How to access/search the files/artifacts in the database?
You can use the pymongo API functions to access the files in the database. gem5art also provides methods that make it easy to access the entries in the database. You can look at the different available methods here.
What if I want to re-run an experiment, using the same artifacts?
As explained in the documentation, when a new run object is created in the launch script, a hash is created out of the artifacts that this run is dependent on. This hash is used to check if a the same run exists in the database. One of the artifacts used to create the hash is runscript artifact (which basically is same as experiments repository artifact, as gem5 configuration scripts are part of the base experiments repository). The easiest way to re-run an experiment is to update the name field of your launch script and commit the changes in the launch script to the base experiments repository. Make sure to use the new name field to query the results or runs in the database.
How can I monitor the status of jobs launched using gem5art launch script?
Celery does not explicitly show the status of the runs by default. flower, a Python package, is a web-based tool for monitoring and administrating Celery.
To install the flower package,
pip install flower
If you are using celery to run your tasks, you can use celery monitoring tool called flower. For this purpose, use the following command:
flower -A gem5art.tasks.celery --port=5555
You can access this server on your web browser using
Celery also generates some log files in the directory where you are running celery from. You can also look at those log files to know the status of your jobs.
How to contribute to gem5art?
gem5art is open-source. If you want to add a new feature or fix a bug, you can create a PR on the gem5art github repo.