Это похоже на вариант использования для MPI , стандарта для написания приложений с распределенной памятью.Он также доступен для использования с R.
Однако, если у вас есть существующий сценарий, который может принимать аргументы, указывающие подмножество проблемы, которые вы можете отправить в кластер несколько раз, ваш предложенный подход, вероятно, болеевыполнимо, чем переписать ваш сценарий для использования с MPI.
В этом случае я бы рекомендовал использовать ваш сценарий как есть, но писать сценарий bash (как вы сами предлагали) для обработки распределения по узлам.Этот сценарий bash должен просто отправить (srun
) несколько выполнений сценария R с различными комбинациями параметров в кластер.В зависимости от объема работы, которую вы хотите выполнить, вы можете написать код для автоматического поиска подходящих параметров srun
в зависимости от общего количества доступных ядер и количества выполняемых сценариев.Вы также можете просто вручную определить, сколько ядер должно потреблять каждое выполнение.
Использование srun для запуска R-скрипта заставляет все узлы и ядра выполнять один и тот же код.
Это я не до конца понимаю.Если вы srun
ваш R-скрипт с разными комбинациями параметров, разные узлы будут вычислять разные части проблемы.Конечно, вам придется агрегировать результаты вручную или автоматически в вашем bash-скрипте.