Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема- Колективні операції

Работа добавлена на сайт samzan.net: 2016-06-20

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 18.5.2024

Тема: Колективні операції.

Мета: Навчитися обчислювати  значення певного одновимірного інтеграла через функції: MPI_Bcast, MPI_Reduce

Обладнання: IBM – сумісні ПК

Програмне забезпечення: ОС Windows, MS Visual C++

Контрольні питання:

1. За рахунок чого гібридні MPI-OpenMP програми можуть бути ефективніше звичайних MPI-програм?

2. Чи потрібно повідомляти MPI-бібліотеці про те, що MPI-процес буде викликати функції з паралельних потоків?

Короткі теоретичні відомості

У колективних комунікаціях беруть участь всі процеси комунікатора. Відповідні функції повинні бути викликані в кожному з процесів. MPI гарантує коректну спільну роботу колективних комунікацій та комунікацій "точка-точка". У MPI містяться функції наступних типів:

  •  Бар'єрна синхронізація процесів комунікатора
  •  Розсилка одних і тих же даних від одного процесу всім (broadcast)
  •  Збір даних одним процесом від інших (gather)
  •  Поділ даних одного процесу між всіма процесами (scatter)
  •  Варіація збору даних, при якій всі процеси отримують результат (allgather)
  •  Обмін даними "кожен з кожним" (alltoall)
  •  редукційні операції
  •  Комбіновані операції редукції і розділення
  •  Часткові редукційні операції

Функція MPI_Bcast.

int MPI_Bcast( void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm )

INPUT/OUTPUT PARAMETER

      buffer - Адрес.

INPUT PARAMETERS

      count  - Число елементів у буфері

      datatype - тип даних

      root - ранг кореневого процесу

      comm - комунікатор

Дані, находяшіеся за адресою buffer в процесі з рангом root копіюються всім сталевим процесам за адресою buffer

Функція MPI_Reduce.

int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,

                     MPI_Op op, int root, MPI_Comm comm)

INPUT PARAMETERS

      sendbuf - Адреса, за якою знаходяться данні які відправляються

      count - число елементів в sendbuf, до якого потрібно примінити операцію

      datatype - Тип даних

      op - Редукційна операція

      root - ранг процесу, який отримає підсумкове значення (кореневого процесу)

      comm - Комунікатор

OUTPUT PARAMETER

      recvbuf - Адреса, за якою буде записано підсумкове значення

Приклад рішення задачі:

Пошук k-тої порядкової статистики

Визначення: k-тою порядковою статистикою x(k) масиву x називається к-тий за не зменшенням елемент масиву x.

Визначення: медіаною масиву x називається x (N / 2 +1), де N - довжина масиву.

Позначення: | x | - число елементів масиву x.

Опис послідовного алгоритму: Нехай заданий масив S з n елементів і число k. Необхідно знайти S (k). Застосовується рекурсивна процедура select

val_type select(int k, val_type* S)

{

if(|S|<50)

{

 sort(S);

 return S[k]

}

else

{

 if(|S1|>k)

  return select(k,S1);

 else

  if(|S1|+|S2|>k)

   return m;

  else

   return select(k-|S1|-|S2|,S3);

}

}  

Опис паралельного алгоритму: Нехай заданий масив S з length елементів і число k. Необхідно знайти S (k). Застосовуються рекурсивні функції selectparallel і select

int  selectparallel(int k, int* s, int size)

{

if(size<50)

       {

               if(!rank)

 {

  sort(s,size);

  result=s[k];

 }

 MPI_Bcast(&result,1,MPI_INT,0,MPI_COMM_WORLD);

               return result;

       }

      else

       {

 if (tc1>k)

 {

  return selectparallel(k,s,tc1);

 }

 else if (tc1+tc2>k)

 {

  return  m;

 }

 else

 {

  return selectparallel(k-tc1-tc2,s,tc3);

 }

       }

}

Хід роботи:

Завдання:

1 частина

1. Написати паралельну програму пошуку k-тої порядкової статистики в масиві за лінійний час. Масив зчитується з файлу, ім'я якого передається виконуваному файлу в командному рядку. Формат файлу: в першому рядку число елементів масиву і номер статистики, далі йдуть самі елементи через пробіл. Тип елементів int.

Зміст звіту :

  1.  Тема, мета роботи, обладнання, програмне забезпечення
  2.  Дайте відповідь на контрольні питання
  3.  Містити послідовність скріншотів по ходу виконання роботи і відповідні коментарі
  4.  Висновки.

Рекомендована література:

1. Книга «Параллельное программирование для многопроцессорних вичислительних систем» (С. Немнюгин, О. Стесик, Изд БХВ-Петербург, 2002).




1. на тему- Изменение трудового договора Проверил- Док
2. то и единственный способ воздействия на учащихся
3. Лишение свободы
4. фармакон погречески означает лекарство и яд.html
5. Реферат- Методическая деятельность учителя истории в школе
6. 1 Стиль как средство форматирования 6 1
7. Изменения в проектную декларацию- 29
8. Предмет земельного права и метод
9. Солидарности требовали преобразований
10. 544 годам до нэ Отцом Будды был правитель небольшого государства с центром в городе Капилавасту царь Шуддхо
11. Глобальная сеть Интернет протоколы, системы доступа
12. реферат дисертації на здобуття наукового ступеня кандидата географічних наук
13. тематичних занять з фізичної культури і спорту
14. Химия Алюминий
15. БАШКИРСКИЙ ГОСУДАРСТВЕННЫЙ МЕДИЦИНСКИЙ УНИВЕРСИТЕТ РОСЗДРАВА ХИРУРГИЧЕСКАЯ АНАТОМИЯ И О
16. c.10]. Область вытянута с запада на восток
17. Инновации в АПК
18. Subject of Stylistics The term ldquo;stylisticsrdquo; originted from the Greek word ldquo;stylos~ which mens ldquo; penrdquo;
19.  Патологическая анатомия- 1 определение 2 задачи 3 объекты и методы исследования 4 место в медицинской нау
20. статья является попыткой их примирить и таким путем создать научногуманистическую систему изучения личност