We wrote the workflow using CWL and executed using StreamFlow. As said in the principal README, the workflow is based on the jupyter notebook available to the following link.
Following the notebook cells, we created self-contained Python applications.
As the notebook, we used the Devito code library to improve the portability and performance of the applications.
The applications are in the cwl/scrips
directory.
In our experiment we used Python v3.10.12
python -m venv venv
pip install -r requirements.txt
source venv/bin/activate
streamflow run streamflow.yml
Before to reproduce the workflow execution, the user can custumize the config file. In particular:
nshots
: Number of shots to used to generate the gradientnreceivers
: Number of receiver locations per shotfwi_iterations
: Number of outer FWI iterations In the notebook these parameters are described in detail.
Other important hyperparameters are:
num_threads
: how many threads thereduce
step can use.nshards
: how many instance of thecompute residual
must be created.