I have a simple script involving afni command line tools that I am running in parallel from bash, but it is very disk I/O intensive and slows things down on our server (using only 2-3 out of the total 96 cores) despite only running a few jobs at a time. The most jobs I am able to run at a time without slowing things down and increasing iowait is 2. I feel like it may have something to do with the fact that it is writing so many files, but I haven't found a solution.
#!/bin/bash
task() {
x=$1
SUB_stats="path/to/subject/data/"$x"_cond3.feat/stats/"
cd $SUB_stats
3dcalc -prefix precentral_top_N_voxels_b -a Precentral_b+orig -b T_top_N_voxels_precentral+orig -expr 'a*b'
3dcalc -prefix occipital_top_N_voxels_b -a Occipital_b+orig -b T_top_N_voxels_occipital+orig -expr 'a*b'
3dcalc -prefix temporal_top_N_voxels_b -a Temporal_b+orig -b T_top_N_voxels_temporal+orig -expr 'a*b'
3dmaskave -quiet -sigma precentral_top_N_voxels_b+orig[0..390] > avgroi_precentral_subbrik_topvoxels.txt
3dmaskave -quiet -sigma occipital_top_N_voxels_b+orig[0..390] > avgroi_occipital_subbrik_topvoxels.txt
3dmaskave -quiet -sigma temporal_top_N_voxels_b+orig[0..390] > avgroi_temporal_subbrik_topvoxels.txt
}
export -f task
cat young_fsf.txt | parallel --nice 15 --progress --eta -j 2 task