LINUX.ORG.RU

pvm и параллельные вычисления


0

0

Hello!

pvm (parallel virtual machine) - система для параллельных вычилений

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

Thanks.


шото много жалоб на неё слышно

cvv ★★★★★
()

Мне лично MPI2 нравится больше. Исключительно из-за one-sided communications, аналогов которых в PVM нет. В остальном примерно одно и то же. Хотя one-sided и дают небольшой overhead, но идея у них привычная, если до этого был опыт программирования shared memory. В программе выделяется память доступная из других процессов и каждый процесс после необходимой синхронизации выполняет read/write этого блока памяти.
MPI сейчас также больше распространен, поскольку разработчики озаботились написанием стандарта, в отличии от PVM. Конечно, если всё делаешь сам (все библиотеки свои собственные), то разницы никакой. Но если используешь чужую библиотеку, то с большей вероятностью там можно обнаружить параллельный код под MPI, чем под PVM.
А с конкретными проблемами лучше в соответствующий mail-list обращаться. У меня возникли проблемы с железом, как ни странно. В обычных условиях гигабитная карта работала нормально, а под MPI стала глючить. Драйвер был от продавцов. Пришлось его курочить под аналогичный драйвер из ядра Linux. После этого всё заработало.

geekkoo
()
Ответ на: комментарий от geekkoo

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

geekkoo
()
Ответ на: комментарий от Die-Hard

При первоначальном поиске информации о mpi и людей её использующих кажется больше.

Просто с чего-то надо было начинать, выбрал pvm (т.к. ближе лежала).

А на счет задачи - то скорее это согласованный запуск нескольких однотипных программ (slave-task) под управлением главной (master-task). Задача статистическая и не требует ни декомпозиции алгоритма, ни конвейера. Просто надо с узлов кластера последовательно данные забрать и обработать их.

Т.к. с pvm стало яснее, что такое параллельные вычисления. Теперь посмотрю на mpi.

Спасибо всем за отклик.

cuba
() автор топика
Ответ на: комментарий от cuba

2cuba:

> Просто надо с узлов кластера последовательно данные 
> забрать и обработать их. 

А не проще такое сделать скриптом на шелле и rsh (ssh) ?
Что-нибудь типа

for n in node1 node2 node3 node4 ; do
ssh $n collectdata.script
scp ${n}:collecteddata/${n}.dat ${n}.dat
treatdata.script ${n}.dat
done

treatalldatadata.script

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Для моей задачи наверно да.

Но я использую в работе одну программу, а она имеет возможность запуска на кластере и использует для этого pvm. Поэтому я и заинтересовался pvm и параллельными вычислениями. А там пошло и поехало, вопросов как обычно много, вот и решил посоветоваться :)

cuba
() автор топика
Ответ на: комментарий от cuba

2cuba:

Есть разные варианты параллелизации.

То, что тебе надо, похоже, ближе к BQS (Batch Queueing System), когда слабо зависящие друг от друга задачи автоматически разбрасываются по узлам кластера.

Die-Hard ★★★★★
()
Ответ на: комментарий от cuba

2cuba :

Недавно сам столкнулся, N1 Grid Engine 6 позволяет строить сложные цепочки взаимозависимых задач -- взгляни:

http://docs.sun.com/app/docs/coll/1017.3

(наверное, есть и покруче, просто я на днях именно с этим сталкивался, http://docs.sun.com/app/docs/doc/817-6117/6mlhdaprt?a=view#chp4-38 и пара предыдущих абзацев).

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.