# Example of experiment definition (NOTE: json does not support comments)

{
    # A list of runs where a run represents a particular profiling
    # configuration. Specify one or more runs as dictionaries.
    "runs": [
        {
            # A name for this run, results will be stored under this name.
            # If using "analysis = scale" this name should be an integer value
            # provided as a string (e.g. name = "12")
            "name": "hello world suite",

            # Path to the suite directory. Relative paths will be prefixed
            # the path to the cylc working copy.
            "suite dir": "~/roses/hello_world",

            # For providing jinja2 variables to your suite.rc
            # --- optional, default=[] ---
            # NOTE: A convention upheld by profile-battery mode for jinja2
            #       variables is:
            #  - `batch_system`: Used for [task][job]batch system = _
            #  - `sleep_time`: User for [task]script = sleep _
            "options": ["setting=value", "foo=bar"],

            # Config items for the global.rc file this suite is run with.
            # --- optional, default=[] ---
           "globalrc": ['[cylc][events]mail events=timeout'],

            # Number of REPEATS to perform, if zero the suite will run once,
            # if one it will run twice!
            # --- optional, default=0 ---
            "repeats": 1
        }
    ],

    # System(s) to profile code:
    # - `time`: Profiles the code using /usr/bin/time.
    # - `cylc`: Runs the code using the --profile option (not available in all
    #     cylc versions.
    # --- optional, default=['time'] ---
    "profile modes": ["time", "cylc"],

    # Type of analysis to perform:
    # - `single`: For non-scaling experiments.
    # - `scale`:  For scaling suites.
    # --- optional, default='single' ---
    "analysis": "single",

    # cylc run mode:
    # - `validate`: Profiles with `cylc validate <SUITE>` rather than
    #     `cylc run <SUITE>`.
    # - `profile-simulation`: Manually overwrites all script to sleep 1 removes
    #     any pre/post script, sets host to localhost and job-submission method
    #     to background then runs `cylc run <SUITE> --mode=live`.
    # - `<MODE>`:   Profiles `cylc run` with `--mode=<MODE>`.
    # --- optional, default=None (equivilent to `live`) ---
    "mode": "profile-simulation",

    # For experiments using analysis=scale, the label for the x-axis of
    # produced plots.
    # --- optional, default='Tasks' ---
    "x-axis": "X axis title"
}
