Pull to refresh

Comments 19

По моему скромному мнению, отпугнуть может и С++ и рассказы про распределенныю память, коммуникацию между узлами.
Помоему те кто испугается- явно не ваша аудитория, тем более что далеко не каждый программист получит шанс применить MPI
MPI может применить (так чтобы это имело смысл) любой человек, у которого есть многоядерный процессор или более одного компьютера.
А вот то, что не каждому дадут время на каком-нибудь Ломоносове, это немного ограничивает поле для экспериментов.
на многоядерной машине- openmp в руки и ни какого mpi. общая память, родные потоки системы без накруток. mpi на общей памяти- микроском, которым забивают гвозди!
Первое время не было единого стандарта (API) для параллельных вычислений и программистам приходилось писать для каждого кластера архитектурно-специфический код. Но, как известно, программисты люди рациональные и быстро было решено организовать стандарты (самые известные — MPI, OpenMP).

Поясните, пожалуйста, данное утверждение, точнее, упоминание здесь OpenMP. Насколько я знаю, MPI и OpenMP — вещи существенно разные, тем более в контексте кластерных вычислений. Всё-таки OpenMP, в отличие от MPI, предназначено для вычислений на системах с общей памятью.
Изначально — да, OpenMP создавался для систем с общей памятью, а MPI для систем с разделяемой памятью, но в последнее время было сделано множество нововведений, которые сделали их почти неотличимыми.
В обоих стандартах все задержки работы с памятью должен учитывать программист, поэтому нет особой разницы что использовать.
Однако, MPI является интерфейсом, который реализуют производители почти всех кластерных систем.
Неотличимы? Нет разницы?

Расскажите как запустить программу на OpenMP на нескольких узлах.
Это неизвестно какая модификация, у которой есть «OpenMP» в названии.

Почитайте про разницу между распределённой и общей памятью.
Спасибо, я в курсе. Она не выстрелила, поэтому и неизвестно какая.
Поэтому я и написал что MPI признанный стандарт, который стараются реализовать все, а про OpenMP я просто сказал что есть возможность использовать на кластере.
Мир?
У OpenMP тоже есть своя спецификация, которая также признана не меньше MPI. Просто для реализации OpenMP в первую очередь требуется поддержка компилятора и библиотеки времени выполнения тесно привязаны к компилятору из-за специфики самого OpenMP. А реализацией MPI больше обеспокоены вендоры аппаратного обеспечения, потому что она не привязана к конкретному компилятору.
Довольно поверхностно, смесь настройки и програмирования и довольно поверхностная по обоим пунктам. Для того чтобы понять что MPI не так страшен хорошо было бы в статье привести хотябы один пример решения какой нибудь задачи.
да и MPI_Init, MPI_COMM_WORLD, MPI_Comm_rank — это не все что что понадобится для вычислений.
Я не особо люблю синтетические примеры, которые считаются на одном процессоре быстрее, чем на двух, поэтому когда руки дойдут до хорошего примера, который будет учитывать задержки работы с памятью, задержки работы с сетью и считаться будет на нескольких вычислительных узлах, то постараюсь оформить это постом.
Писал курсовой с использованием MPI, правда, под Виндой писал. Гонял на двуядерном процессоре ноута, ничего так, даже работало и оба ядра грузило :). Ну а сам курсовой особо из себя ничего не представлял — банальное распараллеливание арифметических операций. В жизни (пока) не приходится писать с использованием параллельных вычислений.
if ((errCode = MPI_Init(&argc, &argv)) != 0)

Бессмысленная проверка. По умолчанию все ошибки фатальны (умолчание отключается вызовом MPI в коде, а не настройкой кластера).
Ну тут да, ненужная проверка, просто на автомате написал, т.к. на чистом С есть возвращаемый int.
MPI_Comm_rank тоже возвращает int, однако там проверки нет.

(Я просто вижу как этот if(MPI_Init...) бездумно копипастится из туториала в туториал и никто не хочет просто взять и почитать спецификацию)
Честно сказать, что статья, на которую вы ссылаетесь, что ваша собственная — это просто детский сад. Если человеку незнакомому с этой темой будет необходимо все так объяснять, то я честно сказать посоветую ему просто ей не заниматься, а пойти в какую-нибудь другую область.
Sign up to leave a comment.

Articles