bashで並列に実行するafniコマンドラインツールに関連する単純なスクリプトがありますが、ディスクI / O集約的でサーバーの速度が遅くなります(96コアのうち2つのみを使用3)。一度に走ります。速度を遅くしたり、iowaitを増やすことなく一度に実行できる最大タスクは2つのタスクです。あまりにも多くのファイルを書くことに関連しているようですが、まだ解決策が見つかりませんでした。
#!/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