General overview¶
Terminology¶
Some important terminology to help users understand the Melissa configuration:
client
- an instance of the user code (i.e. thedata-generator
, typically a physics based code) instrumented to send data to theserver
. The number ofclient
instances depends on the size of the user defined parameter space.group
- a job comprising multipleclients
. This feature comes into play when Sobol indices are computed or when thegroup_size
configuration option is set to a number greater than 1. Otherwise,group_size=1
and aclient
is equivalent to agroup
. Non-unitgroups
are submitted withOpenMPI
MPMD launch mode orslurm
heterogeneous jobs.server
- a single instance which collects and processes the data generated by theclient
. It instructs thelauncher
to submit newclient
instances with new parameter combinations.launcher
- a single instance which first submits aserver
job and then waits for instructions from it to submitclient
jobs. Jobs are submitted to the cluster scheduler and thelauncher
currently supportsOAR
,slurm
, andOpenMPI
.study
- the full process of launching parameter combinations -> data generation -> data collection -> data processing.
File structure overview¶
Melissa requires a set of configuration files which define various aspects of the user simulation:
<project-dir>/<config-file>.json
- A
JSON
file which configures the parametric sweep of thedata-generator
, the data process and thelauncher
.
- A
<project-dir>/<use-case>_server.py
- A user inherited server class which typically sets all data treatment customization (e.g. DL training, environment configurations, etc.).
where <project-dir>
is the user made folder structured similar to the existing examples/*
folders.
File structure details¶
<config-file>.json
¶
The configuration file defining the parametric sweep on the data-generator
, the server-specific settings (e.g. training parameters) as well as the launcher settings.
For more information please refer to Configuring the study or to any example of <config-file>.json
available in each example folder.
<use-case>_server.py
¶
Users must include a custom-named file <use-case>_server.py
in their <project-dir>
folder. This file contains an inherited class
which is used to customize as many or as few server functions as wished.
More information on how to configure this file are available in Inheriting the server object and examples are shown in the example folders.
Note
By default, the server implementation is expected to be provided by the class MyServer
of the file <use-case>_server.py
. The user can specify other location by setting, in the <config-file>.json
, the variables server_filename
and server_class
.