mpi4py или многопроцессорность в Python? - PullRequest
0 голосов
/ 10 июня 2018

Я пишу инструментарий машинного обучения для параллельного запуска алгоритма с различными настройками (каждый процесс запускает алгоритм для одной настройки).Я думаю о том, чтобы использовать mpi4py или встроенную многопроцессорность Python?

Есть несколько плюсов и минусов, о которых я думаю.

  1. Простота в использовании:

    • mpi4py: кажется, что есть больше идей для изучения и немного хитростей, чтобы заставить его работать хорошо
    • многопроцессорность: довольно простой и понятный API
  2. Скорость:

    • mpi4py: люди говорят, что это более низкий уровень, поэтому я ожидаю, что он можетБыть быстрее, чем многопроцессорная обработка Python?
    • Многопроцессорная обработка: по сравнению с mpi4py, намного медленнее?
  3. Чистый и короткий код:

    • mpi4py: кажется больше кода для написания
    • многопроцессорная обработка: предпочтительнее, простой в использовании API

Рабочий контекст заключается в том, что я стремлюсь выполнить код в основном в одномкомпьютер или сервер графического процессора.На самом деле не предназначен для работы на разных машинах в сети (что может сделать только MPI).

И поскольку основная цель - это машинное обучение, поэтому распараллеливание не обязательно должно быть очень оптимальным, ключцель, которую я хочу достичь, - это сбалансировать простое, чистое и быстрое обслуживание базы кода, но в то же время использовать преимущества параллелизации.

С фоном, описанным выше, рекомендуется ли достаточно использовать многопроцессорность?Или есть очень веская причина использовать mpi4py?

...