Client- and server-side workflow

This workflow separates defining and uploading (client-side operations) from writing inputs and running sims (server-side).

Client-side

The client-side workflow uses idmtools and emodpy to communicate with COMPS.

  1. Create a parameter dictionary that defines the experiment by specifying values for all simulation parameters:

    OUTPUT = param_dict.json
    
  2. Upload the parameter dictionary along with the Python files that construct the model inputs. Run the simulations:

    OUTPUT = COMPS_ID.id
    
  3. Collect results from the server:

    OUTPUT = data_brick.json
    

Server-side

The server-side workflow uses emod-api for file creation.

Each EMOD simulation automatically runs three Python functions: dtk_pre_process, dtk_in_process, and dtk_post_process. All file creation work is done within the dtk_pre_process function. That application will find the ID assigned to the simulation, open the parameter dictionary and retrieve the correct values for the simulation, then use emod-api to create input files.

The easiest way to trace the workflow is to start in an experiment directory and examine the three Python scripts (corresponding to the three client-side steps above) that need to be run in order.