защо mpirun дублира програмата по подразбиране?

Нов съм в openMPI, имам проблем с разбирането на концепциите. (Намерих това за доста полезно)

1- Може ли някой да обясни накратко защо използваме openMPI? Доколкото разбирам, OpenMPI се използва за паралелизиране на онези секции от кода, които могат да работят паралелно.

2- защо mpirun дублира една програма? просто защото лаптопът ми е двуядрен?

3 - какви промени в кода трябва да приложа, за да работи правилно? Имам предвид ЕДНА програма, паралелизирана на две налични ядра? не 2 подобни нишки на една и съща програма.


person sali    schedule 30.04.2014    source източник


Отговори (1)


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

Изисква сериозна модификация на програмата.

person kec    schedule 30.04.2014
comment
Благодаря за бързия отговор. Трябва ли вместо това да инсталирам и използвам openMP? и вашият отговор основно означава, че openMPI НЕ може да се използва за многопоточност на споделена памет? - person sali; 30.04.2014
comment
OpenMP също изисква модификация, но не толкова (вероятно) колкото MPI. OpenMP работи само на една машина, така че степента на паралелизиране ще бъде ограничена от броя на ядрата на една машина. Така че, ако това работи за вас, тогава да. - person kec; 30.04.2014
comment
благодаря, така че не е толкова лесно като добавянето на #pragma omp parallel for за тежки for цикли! - person sali; 30.04.2014
comment
Е, ако вече имате много подходящи цикли като този, тогава може да бъде толкова лесно. - person kec; 30.04.2014
comment
тогава каква би била разликата между openMPI и openMP? Искам да кажа, мога ли да използвам openMPI и да добавя pragma към подходящи цикли? - person sali; 30.04.2014
comment
OpenMP не може да се разпространява на множество машини в клъстер, така че мащабируемостта е ограничена. Ето няколко точки. - person kec; 30.04.2014
comment
Да, можете да комбинирате OpenMP и MPI. Имайте предвид, че OpenMP е стандарт и MPI е стандарт, но OpenMPI е специфична реализация на MPI. (Донякъде объркващо.) - person kec; 30.04.2014
comment
Благодаря, сега нещата придобиват по-добър смисъл. - person sali; 30.04.2014