У меня есть программа, которая выполняет моделирование методом Монте-Карло. В настоящее время я написал версию программы как для OpenMP, так и для OpenCL и хочу знать, как лучше всего распределить рабочую нагрузку между компьютерами в локальной сети.Методы Малые распределенные вычисления
Моя первая идея состояла в том, чтобы написать приложение на основе сокетов, которое будет разделять рабочие единицы для отправки клиентам, которые затем завершат их и отправят обратно результаты. Чтобы использовать системы с быстрыми процессорами и графическими процессорами, я мог запускать несколько экземпляров клиентской программы в системе (исполняемый файл aomp и a -ocl).
Однако программирование сокетов редко бывает приятным и боль, чтобы получить право (решение по протоколу и т. Д.). Поэтому я решил посмотреть на MPI, который кажется приятным, хотя я не уверен, насколько хорошо он работает, когда вы хотите включить в этот процессор процессоры + графические процессоры или насколько хорошо настроен мой «рабочий блок», заданный сервером. (Процесс определения того, области проблемного пространства для образца нетривиальны, поэтому требование для разумного мастер-процесса координировать вещи.)
Следовательно, мне интересно узнать, имеются ли какие-либо другие варианты, доступные мне или что другие решили в аналогичной ситуации.
mpi - стандарт дезактома. – Anycorn