Запустите зацикленный процесс в bash на нескольких ядрах
У меня есть сценарий оболочки, который содержит следующий цикл.
i=0
upperlimit=$verylargevariable
do
complexstuff RunManager file $i
i= 'expr $i +1'
done
Этот скрипт выполняется на четырехъядерном компьютере, и в соответствии сtop
, использует около 15% каждого ядра при выполнении одной итерации цикла. Я хотел бы распределить его по четырем ядрам, чтобы каждая итерация циклаcomplexstuff
четыре раза, по одному на каждое ядро, поэтому ресурсы будут использоваться более эффективно. Мы говорим о вычислениях, которые в настоящее время занимают несколько часов, поэтому эффективность - это больше, чем просто хорошая практика. (Вывод каждой итерации, очевидно, не зависит от предыдущей.)
PS: Хост - это сервер под управлением Cent-OS, если это помогает.