Slurm - Job Script Example 02a Many Input Files in Separate Directories with Python
Description♯
You have multiple input files in multiple directories. The paths are:
/ifs/groups/myGrp/Inputs/1/data.txt
/ifs/groups/myGrp/Inputs/2/data.txt
/ifs/groups/myGrp/Inputs/3/data.txt
/ifs/groups/myGrp/Inputs/4/data.txt
/ifs/groups/myGrp/Inputs/5/data.txt
/ifs/groups/myGrp/Inputs/6/data.txt
/ifs/groups/myGrp/Inputs/7/data.txt
/ifs/groups/myGrp/Inputs/8/data.txt
/ifs/groups/myGrp/Inputs/9/data.txt
You have a Python script which reads one of those data files.
You want to run nine distinct copies of the Python script separately on each of those data files.
Python Script♯
#!/usr/bin/env python3
import os
task_id = os.environ['SLURM_ARRAY_TASK_ID']
print('task_id = {}'.format(task_id))
datafile = '/ifs/groups/myGrp/Inputs/{}/data.txt'.format(task_id)
with open(datafile, 'r') as f:
for line in f:
print(line)
Slurm Job Script♯
#!/bin/bash -l
#SBATCH --array=1-9
python3 arr_test.py