To run Unicorn on a different dataset you will only need /tests/run_unicorn_debug.py and /tests/run_unicorn_optimization.py. To perform interventions using the recommended configuration you need to develop your own utilities (similar to /services/run_params.py). Additionally, you need to make some changes in the etc/config.yml to use the configuration options and their values accordingly. The necessary steps are the following:
-
Update
init_dirinconfig.ymlwith the directory where initial data is stored. -
Update
bug_dirinconfig.ymlwith the directory where bug data is stored. -
Update
output_dirvariable in theconfig.ymlfile where you want to save the output data. -
Update
hardware_columnsin theconfig.ymlwith the hardware configuration options you want to use. -
Update
kernel_columnsin theconfig.ymlwith the kernel configuration options you want to use. -
Update
perf_columnsin theconfig.ymlwith the events you want to track using perf. If you use any other monitoring tool you need to update it accordingly. -
Update
measurement_columsin theconfig.ymlbased on the performance objectives you want to use for bug resolve. -
Update
is_intervenablevariables in theconfig.ymlwith the configuration options you want to use and based on your application change their values to True or False. True indicates the configuration options can be intervened upon and vice-versa for False. -
Update the
option_valuesvariables in theconfig.ymlbased on the allowable values your option can take. -
Now, you can run
run_unicorn_debug.pyandrun_unicorn_optimization.pywith your own specification. Please notice that you also need to update the directories according to your software and hardware name in data directory. If you change the name of the variables in the config file or use a new config file you need to make changes accordingly from inrun_unicorn_debug.pyandrun_unicorn_optimization.py.