есть некий bash скрипт transenergy.x, который я запускаю из другого bash скрипта и коммандной строки как ./transenergy.x параметр1 параметр2 всё вроде бы работает нормально на этом этапе.
Но когда я попытался задействовать несколько ядер для расчёта я начал с такого кода:
count=0
# Compute energies of transitions for this wavevector
for i in `seq 0 $index`;
do
for j in `seq 0 $index`;
do
./transenergy.x ${kxi[$i]} ${kyi[$j]} &
let "count = $count + 1"
if [ ${count} -eq $noJobs ] ; then
wait
count=0;
fi
done
done
где index - переменная с числом элементов в массивах kxi и kyi, noJobs - максимальное число параллельных процессов.
Код который привёл выше вполне неплохо работает, но хотелось бы добиться запуска параллельных процессов при помощи GNU parallel.
Пробовал заменить вышенаписанный код хотя бы так:
echo "${kxi[@]} ${kyi[@]}" | parallel -j$noJobs ./transenergy.x {}
что делаю не так?
спасибо :)