How to customise a simulation

This tutorial takes you through the steps required to run a customised simulation using the SDP resource model.

Ensure you have followed the installation instructions and successfully run the simulation with default settings before continuing.

Customising the inputs

Ensure you have read the following sections on the input formats before making any changes:

  1. Create a new JSON file containing the observing schedule you want to simulate. For example:

    {
         "scheduling_blocks": [
             "Calibrated Visibilities",
             "Continuum Shallow",
             "Beam Monitoring",
             "Continuum Deep",
             "Continuum Shallow",
             "Continuum Deep",
             "Maintenance",
             "Spectral Deep"
         ]
     }
    
  2. Place the JSON file in the /data/schedules directory.

  3. If you need to edit or add scheduling block types, edit these in the JSON file at /data/config/scheduling_block_type.json. For example you can add a new scheduling block type:

    ...
    {
        "new_scheduling_block_type": {
            "description": "New scheduling block type",
            "short_name": "NST",
            "sampling_weight": 1.0,
            "scheduling_block_instance_time_hrs": 1.0,
            "integration_time_hrs": 10.0,
            "pipeline_steps": ["ICAL", "CIMG"],
            "raw_vis_gb": 10.0,
            "processed_vis_gb": 20.0,
            "data_retention_hrs": 24.0,
        }
    }
    ...
    

Any scheduling block type that is in the observing schedule file must be in this JSON file with all key value pairs.

  1. If you need to specify a new pipeline configuration, add it to the JSON file at /data/config/pipeline.json. For example:

    ...
    {
        "name": "new_pipeline",
        "steps": [
            {
                "description": "New pipeline step",
                "node_hours_mean": 1000.0,
                "pct_parallelism_min": 80.0,
                "data_product_storage_gb": 1000.0,
            }
        ],
    }
    ...
    

Any pipeline that is in the scheduling block types configuration file must be in this JSON file with all key value pairs.

  1. If you need to specify a new hardware configuration, add it to the JSON file at /data/config/hardware.json. For example:

    ...
    {
        "name": "new_configuration",
        "capacity_storage_pb": 10,
        "performance_storage_tb": 50,
        "compute_nodes": 100,
        "data_product_storage_pb": 1,
    }
    ...
    

Running the simulation

Follow the instructions for running the simulation using your preferred interface.