Можно ли распространять программу MPI (C ++) через Интернет, а не внутри кластера локальной сети? - PullRequest
4 голосов
/ 17 июня 2010

Я написал некоторый код MPI, который безупречно работает на больших кластерах. Каждый узел в кластере имеет одинаковую архитектуру процессора и имеет доступ к сетевой (то есть «общей») файловой системе (так что каждый узел может освобождать фактический двоичный файл). Но рассмотрим этот сценарий:

  • У меня в офисе есть машина с двухъядерным процессором (Intel).
  • У меня дома есть машина с двухъядерным процессором (amd).

Обе машины работают под управлением Linux, и обе машины могут успешно компилировать и запускать код MPI локально (т. Е. Используя 2 ядра).

Теперь, возможно ли связать две машины вместе через MPI, чтобы я мог использовать все 4 ядра, учитывая разные архитектуры и учитывая тот факт, что нет общих (сетевых) файловых систем?

Если так, то как?

Спасибо, Бен.

Ответы [ 2 ]

5 голосов
/ 17 июня 2010

Это возможно сделать.Большинство реализаций MPI позволяют вам указать расположение двоичного файла, который будет запускаться на разных машинах.В качестве альтернативы, убедитесь, что он находится на вашем пути на обеих машинах.Поскольку обе машины имеют одинаковый порядок байтов, это не должно быть проблемой.Вам нужно будет убедиться, что любые входные данные, которые читают отдельные процессы, доступны в обоих местах.Вы должны убедиться, что межсетевые экраны между системами позволят запуск процесса и связь.Связь между машинами будет намного медленнее, поэтому, если вы кодируете, связь интенсивна или нетерпимость к задержке, вероятно, она будет довольно медленнойСкорее всего, ваше время выполнения на всех 4 ядрах будет больше, чем просто на 2 на одной машине.

0 голосов
/ 04 марта 2011

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

Вы можете точно указать путь к двоичному файлу на каждой машине, а также иметь два независимых двоичных файла. Однако следует помнить, что программа будет работать медленно, если инфраструктура связи между двумя узлами недостаточно быстрая.

...