Использование MPI на одном Raspberry-Pi - PullRequest
0 голосов
/ 30 мая 2018

Я работаю над приложением (на C ++), которое включает несколько независимых операций ( FFTW + обработка сигналов) над массивами данных.Размеры массива могут быть либо 512, либо 1024 (еще предстоит решить), а тип данных - двойной.

Я надеюсь, что эти независимые операции будут парализованы, чтобы получить максимальную выгоду от Pi.Очевидная вещь, которую я бы сделал в прошлом, - это использование pthreads.

Однако (к сожалению :)) я недавно узнал о MPI, и мне интересно, стоит ли мне использовать его здесь вместо старых добрых потоков.Очевидно, что MPI был бы подходящим вариантом, если бы у меня был кластер устройств (это то, что я получаю при поиске в Интернете).

Но действительно ли MPI все еще является хорошим выбором в моей ситуации, когда есть только одно устройство?(и особенно, когда это устройство Raspberry-Pi).

(Если ответ на вопрос выше "нет", означает ли это, что MPI является плохим выбором в целом, когда есть только один компьютер?)

1 Ответ

0 голосов
/ 06 июня 2018

MPI может быть отличным выбором, в зависимости от того, сколько работы может быть выполнено на единицу связи.Вот как бы я считал MPI или нет.

Я являюсь соавтором структуры симуляции МРТ.Там мы имеем дело с отдельными «макро» спинами, которые обычно рассматриваются как пространственно не взаимодействующие.Это позволяет распараллеливать бедняков на каждом спине и локальных уравнениях Блоха.Так много физики для очень небольшого общения.Даже на одном устройстве он может работать так же хорошо, как и pthreads.

Однако на другой стороне спектра я вижу массивную параллельную матричную инверсию, как это сделано с помощью SCALAPACK.Там вы найдете много сообщений на единицу расчета.Вот где в мире нет шансов, что вы могли бы конкурировать с нитями.

Даже если вы собираетесь использовать пи-кластер, вы будете использовать как MPI, так и pthreads в таких случаях и, возможно, не сможете достичь безубыточности, так как 100-битная сеть имеет значительные проблемы с задержкой.
Тамэто одноплатные машины с сетью 1 Гбит / с и более высокой производительностью fp, чем у raspberry pi, где стоимость связи может стоить.

tldr: чтобы MPI имел смысл, нужно computation/communication >> 1.

...