Я пишу инструментарий машинного обучения для параллельного запуска алгоритма с различными настройками (каждый процесс запускает алгоритм для одной настройки).Я думаю о том, чтобы использовать mpi4py или встроенную многопроцессорность Python?
Есть несколько плюсов и минусов, о которых я думаю.
Простота в использовании:
- mpi4py: кажется, что есть больше идей для изучения и немного хитростей, чтобы заставить его работать хорошо
- многопроцессорность: довольно простой и понятный API
Скорость:
- mpi4py: люди говорят, что это более низкий уровень, поэтому я ожидаю, что он можетБыть быстрее, чем многопроцессорная обработка Python?
- Многопроцессорная обработка: по сравнению с mpi4py, намного медленнее?
Чистый и короткий код:
- mpi4py: кажется больше кода для написания
- многопроцессорная обработка: предпочтительнее, простой в использовании API
Рабочий контекст заключается в том, что я стремлюсь выполнить код в основном в одномкомпьютер или сервер графического процессора.На самом деле не предназначен для работы на разных машинах в сети (что может сделать только MPI).
И поскольку основная цель - это машинное обучение, поэтому распараллеливание не обязательно должно быть очень оптимальным, ключцель, которую я хочу достичь, - это сбалансировать простое, чистое и быстрое обслуживание базы кода, но в то же время использовать преимущества параллелизации.
С фоном, описанным выше, рекомендуется ли достаточно использовать многопроцессорность?Или есть очень веская причина использовать mpi4py?