-
Notifications
You must be signed in to change notification settings - Fork 25
Badger
This C# app enables the user to:
- Generate the configuration file of a Simion app taking as input the definitions of all the classes and parameters using a GUI.
- Allow the user to give several values to each parameter
- Remote execution of each combination of parameter values
- Analysis of the results
The app should be as independent from the source code as possible but there is a compromise between being generic and being able to validate the configuration data without overcomplicating the syntax of the input file. So far, validation done by Badger is minimal: check numerical parameters are actually numbers, state/aciton variables exist in the selected world, etc...
Badger reads /config/definitions.xml and /config/apps/*.xml on initialization. The former contains the definitions of all the parameterized object classes in RLSimion parsed by SimionSrcParser, and the latter contains a description of the different versions of RLSimion (Win-32, Win-64 and Linux-64) and the static dependencies. Additional input files may be required depending on the configuration of an experiment and those are determined just before sending the experimental units to the Herd-Agents.
The different file types that can be saved/loaded from Badger and their formats can be found here, all based on XML: project, experiment and batch. They are explained here.
Badger uses a MVVM pattern and follows Caliburn Micro's naming conventions. The View-model of some Foo class is named FooViewModel, and its view is named FooView. Basic information and examples can be found here
Badger has three main tabs that allow to design an experiment, monitor it and analyse the results.
From this window, the user can design experiments from scratch, load, save and launch them.
The objects in the experiment editing window are organized as described in Badger object hierarchy.
In this window, the user can send to Herd Agents jobs to be executed remotely. The user can select which agents to use, view their state and follow the progress, performance and messages logged by the experiments being run.
After an experiment is run, the user can easily analyse the results of an experiment, which are organised using the forks in the experiment.



