Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Написати приклад створення комунікатора (новий не містить процеси 0,1). ⇐ ПредыдущаяСтр 4 из 4
#include <stdio.h> #include <stdlib.h> #include <mpi.h> int main(int argc, char **argv) { int rank, size, newrank, newsize; MPI_Group oldgroup, group; MPI_Comm newcomm; int excl_ranks[] = {0,1}; MPI_Init(&argc, &argv); MPI_Comm_group(MPI_COMM_WORLD, &oldgroup); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Group_excl(oldgroup, 2, excl_ranks, &group); MPI_Comm_create(MPI_COMM_WORLD, group, &newcomm); char *message_buf = (char *) malloc(32); int i; if(newcomm!= MPI_COMM_NULL) { MPI_Comm_rank(newcomm, &newrank); MPI_Comm_size(newcomm, &newsize); } if(newrank == 0) { message_buf = "Hi new group"; } if(newcomm!= MPI_COMM_NULL) { MPI_Bcast(message_buf, 32, MPI_CHAR, newrank, newcomm); } for(i = 0; i < newsize; ++i) { if(newrank == i) { printf("MPI_COMM_WORLD: %d from %d. New comm: %d from %d. Message = %s\n", rank, size, newrank, newsize, message_buf); MPI_Comm_free(&newcomm); } } MPI_Group_free(&oldgroup); MPI_Group_free(&group); MPI_Finalize(); return 0; } Написати приклад створення комунікатора (новий містить тільки процеси 0,1).
#include <stdio.h> #include <stdlib.h> #include <mpi.h> int main(int argc, char **argv) { int rank, size, newrank, newsize; MPI_Group oldgroup, group; MPI_Comm newcomm; int excl_ranks[] = {0,1}; MPI_Init(&argc, &argv); MPI_Comm_group(MPI_COMM_WORLD, &oldgroup); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Group_incl(oldgroup, 2, excl_ranks, &group); MPI_Comm_create(MPI_COMM_WORLD, group, &newcomm); char *message_buf = (char *) malloc(32); int i; if(newcomm!=MPI_COMM_NULL) { MPI_Comm_rank(newcomm, &newrank); MPI_Comm_size(newcomm, &newsize); } if(newrank == 0) { message_buf = "Hi new group"; } if(newcomm!= MPI_COMM_NULL) { MPI_Bcast(message_buf, 32, MPI_CHAR, newrank, newcomm); } for(i = 0; i < newsize; ++i) { if(newrank == i) { printf("MPI_COMM_WORLD: %d from %d. New comm: %d from %d. Message = %s\n", rank, size, newrank, newsize, message_buf); MPI_Comm_free(&newcomm); } } MPI_Group_free(&oldgroup); MPI_Group_free(&group); MPI_Finalize();
return 0; } Загальна структура MPI програми. Отримання інформації про розмір комунікатора, ранг процесу. Комунікації точка-точка, прості блоковані обміни. 3. Обмiн за схемою естафетна палочка (кільце) функція MPI_Sendrecv. Типи даних MPI. Створення і використання структур в MPI. Пересилка прийом запакованих типiв даних. Прийом невідомих типів даних в MPI.. Комунікації точка-точка. Неблокуючі (асинхронні) передачі в MPI. 8. Точки синхронізації. Функція MPI_Bcast. 9. Колективні функції MPI_Gather, MPI_Scatter. 10.Операцiя згортки. Функція MPI_Reduce. Групи процесів та операції з ними. Комунікатори та операції з ними. Декатрова топологія в MPI. Топологія графа в MPI. 1. Написати приклад MPI програми котра надрукує номера процесів та імена процесорів на котрих працює. Навести команди компіляції та запуску MPI програми.
2. Написати приклад обміну між двома процесами з використанням функцій блокованого обміну. 3. Написати приклад обміну між парними та непарними процесами з використанням функцій блокованого обміну. 4. Написати приклад обміну між двома процесами з використанням функцій неблокуючого (асинхронного) обміну. 5. Написати приклад обміну між парними та непарними процесами з використанням функцій неблокуючого (асинхронного) обміну. 6. Написати приклад створення MPI структури з трьома полями. 7. Написати приклад пересилки прийому запакованих типiв даних 8. Написати приклад обміну між всіма процесами з використанням функції MPI_Bcast. 9. Написати приклад додавання квадратних матриць з використанням колективних функцій. 10.Написати приклад знаходження суми максимальних елементiв рядкiв матриці з використанням колективних функцій. 11. Написати приклад знаходження суми елементiв матриці з використанням функції MPI_Reduce. 12.Написати приклад знаходження максимума елементiв вектора з використанням функції MPI_Reduce. 13.Написати приклад створення комунікатора (новий не містить процеси 0,1). 14.Написати приклад створення комунікатора (новий містить тільки процеси 0,1). SIMULATE ;Система має 5 обслуговуючих каналів chas VARIABLE 100; закінчення часу роботи t_z VARIABLE 2; час бробки заяв gus VARIABLE 10; густина заявок GENERATE V$chas TERMINATE 1 GENERATE (Exponential(2,0,2/V$gus)) Chan1 GATE NU 1,Chan2 SEIZE 1 ADVANCE V$t_z RELEASE 1 TRANSFER,done Chan2 GATE NU 2,failed SEIZE 2 ADVANCE V$t_z RELEASE 2 TRANSFER,done done QUEUE done_count TRANSFER,ex failed QUEUE failed_count TRANSFER,ex ex TERMINATE
|
|||||
Последнее изменение этой страницы: 2017-01-20; просмотров: 374; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.234.232.228 (0.011 с.) |