1
我有四個不同的實驗因素。如何並行化嵌套循環的csh腳本
對於每個實驗,我需要改變三個參數並調用一個fortran程序。我使用EOF構造將參數傳遞給fortran程序。
下面是代碼示例:
set expfac=(0.1 0.3 0.5 0.7)
set fact1=(1 3 2 8)
set fact2=(9 2 1 4)
set fact3=(5 6 1 4)
@ exp = 1
while ($exp <= $#expfac)
foreach i ($fact1)
foreach k ($fact2)
foreach h ($fact3)
./PROGRAM << EOF
expfac |$expfac[$exp]
fact1 |${i}
fact2 |${k}
fact3 |${h}
EOF
end
end
end
@ exp += 1
end
我如何可以並行對於while循環?使用GNU並行可能嗎?
GNU並行將完全符合你的要求在Ubuntu上要小心,它們有一個愚蠢的默認參數,這使得它的行爲不像文檔中那樣。它無法正常工作,請刪除/ etc/parallel/config中的--tollef標誌或在命令行中使用--gnu選項。 –