PIV computation on a cluster#

This minimal example presents how to carry out a simple PIV computation on a cluster. We need a script for the computation and a script to submit the job.

We call the script for the computation piv_complete.py. For idempotent job, it is important to set params.saving.how = 'complete'.

from fluidimage.piv import Topology

params = Topology.create_default_params()

params.series.path = "../../image_samples/Karman/Images"
params.series.ind_start = 1

params.piv0.shape_crop_im0 = 32
params.multipass.number = 2
params.multipass.use_tps = True

# params.saving.how has to be equal to 'complete' for idempotent jobs
# (on clusters)
params.saving.how = "complete"
params.saving.postfix = "piv_complete_example"

topology = Topology(params, logging_level="info")
# topology.make_code_graphviz('topo.dot')

topology.compute()

The submission script is quite simple:

from fluiddyn.clusters.legi import Calcul8

cluster = Calcul8()

cluster.commands_setting_env = [
    "source /etc/profile",
    "module purge",
    "source $HOME/miniconda3/etc/profile.d/conda.sh",
    "conda activate env_fluidimage",
]

cluster.submit_script(
    "piv_with_topo_complete.py",
    name_run="fluidimage",
    nb_cores_per_node=4,
    walltime="0:15:00",
    omp_num_threads=1,
    idempotent=True,
    delay_signal_walltime=300,
)