/* * Приклад 1
* Визначення кількості процесів в додатку
* і порядкового номера процесу в групі
*/
#include <mpi.h>
#include <stdio.h>
int main(int argc, char **argv)
{
int size, rank, i;
/* ініціалізація бібліотеки */
MPI_Init( &argc, &argv );
/* визначення кількості завдань в додатку */
MPI_Comm_size( MPI_COMM_WORLD, &size );
/* визначення власного номеру від 0 до (size-1) */
MPI_Comm_rank( MPI_COMM_WORLD, &rank );
/* задача з номером 0 повідомляє користувачу розмір групи,
* до якої доданий комунікатор MPI_COMM_WORLD,
* тобто число процесів у додатку!!
*/
if( rank==0 )
printf("Total processes count = %d\n", size
); /*кожна задача показує користувачеві свій номер */
Лабораторна робота 5.
printf("Hello! My rank in MPI_COMM_WORLD = %d\n", rank
); /*Усі задачі завершують роботу*/
MPI_Finalize();
return 0;
}
LyogKiDQn9GA0LjQutC70LDQtCAxCiog0JLQuNC30L3QsNGH0LXQvdC90Y8g0LrRltC70YzQutC+0YHRgtGWINC/0YDQvtGG0LXRgdGW0LIg0LIg0LTQvtC00LDRgtC60YMKKiDRliDQv9C+0YDRj9C00LrQvtCy0L7Qs9C+INC90L7QvNC10YDQsCDQv9GA0L7RhtC10YHRgyDQsiDQs9GA0YPQv9GWCiovCiNpbmNsdWRlIDxtcGkuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKewppbnQgc2l6ZSwgcmFuaywgaTsKLyog0ZbQvdGW0YbRltCw0LvRltC30LDRhtGW0Y8g0LHRltCx0LvRltC+0YLQtdC60LggKi8KTVBJX0luaXQoICZhcmdjLCAmYXJndiApOwovKiDQstC40LfQvdCw0YfQtdC90L3RjyDQutGW0LvRjNC60L7RgdGC0ZYg0LfQsNCy0LTQsNC90Ywg0LIg0LTQvtC00LDRgtC60YMgKi8KTVBJX0NvbW1fc2l6ZSggTVBJX0NPTU1fV09STEQsICZzaXplICk7Ci8qINCy0LjQt9C90LDRh9C10L3QvdGPINCy0LvQsNGB0L3QvtCz0L4g0L3QvtC80LXRgNGDINCy0ZbQtCAwINC00L4gKHNpemUtMSkgKi8KTVBJX0NvbW1fcmFuayggTVBJX0NPTU1fV09STEQsICZyYW5rICk7Ci8qINC30LDQtNCw0YfQsCDQtyDQvdC+0LzQtdGA0L7QvCAwINC/0L7QstGW0LTQvtC80LvRj9GUINC60L7RgNC40YHRgtGD0LLQsNGH0YMg0YDQvtC30LzRltGAINCz0YDRg9C/0LgsCiog0LTQviDRj9C60L7RlyDQtNC+0LTQsNC90LjQuSDQutC+0LzRg9C90ZbQutCw0YLQvtGAIE1QSV9DT01NX1dPUkxELAoqINGC0L7QsdGC0L4g0YfQuNGB0LvQviDQv9GA0L7RhtC10YHRltCyINGDINC00L7QtNCw0YLQutGDISEKKi8KaWYoIHJhbms9PTAgKQpwcmludGYoIlRvdGFsIHByb2Nlc3NlcyBjb3VudCA9ICVkXG4iLCBzaXplICk7Ci8q0LrQvtC20L3QsCDQt9Cw0LTQsNGH0LAg0L/QvtC60LDQt9GD0ZQg0LrQvtGA0LjRgdGC0YPQstCw0YfQtdCy0ZYg0YHQstGW0Lkg0L3QvtC80LXRgCAqLwrQm9Cw0LHQvtGA0LDRgtC+0YDQvdCwINGA0L7QsdC+0YLQsCA1LgpwcmludGYoIkhlbGxvISBNeSByYW5rIGluIE1QSV9DT01NX1dPUkxEID0gJWRcbiIsIHJhbmsgKTsKLyrQo9GB0ZYg0LfQsNC00LDRh9GWINC30LDQstC10YDRiNGD0Y7RgtGMINGA0L7QsdC+0YLRgyovCk1QSV9GaW5hbGl6ZSgpOwpyZXR1cm4gMDsKfQ==