Документ взят из кэша поисковой машины. Адрес оригинального документа : http://new.math.msu.su/content_root/programs/kaf/special/vichmat/osn-bog.doc
Дата изменения: Mon Nov 10 08:54:34 2008
Дата индексирования: Sun Apr 10 03:12:31 2016
Кодировка: koi8-r

ОСНОВЫ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ
доц. К.Ю. Богачев
1/2 года, 2-5 курс
1. CISC и RISC процессоры. Основные черты RISC архитектуры.
2. Повышение производительности процессоров за счет конвейеризации.
Условия оптимального функционирования конвейера.
3. Суперконвейерные и суперскалярные процессоры. Выделение независимо
работающих устройств: IU, FPU, MMU, BU.
4. Методы уменьшения негативного влияния инструкций перехода на
производительность процессора.
5. Повышение производительности процессоров за счет введения кэш памяти.
Кэши: единый, Гарвардский, с прямой записью, с обратной записью.
6. Организация кэш-памяти. Алгоритмы замены данных в кэш памяти.
Специальные кэши.
7. Согласование кэшей в мультипроцессорных системах с общей памятью.
8. Виды многопроцессорных архитектур.
9. Поддержка многозадачности и многопроцессорности специальными
инструкциями процессора. Организация данных во внешней памяти.
10. Программа, процессор, процесс. Основные составляющие процесса,
состояния процесса. Стек, виртуальная память, механизмы трансляции адреса.
11. Механизмы взаимодействия процессов. Разделяемая память, семафоры,
сигналы, почтовые ящики, события. Задачи (threads). Сравнение с процессами.
Ресурсы, приоритеты. Параллельные процессы. Связывание. Статическое и
динамическое связывание.
12. Виды ресурсов: аппаратные, программные, активные, пассивные,
локальные, разделяемые, постоянные, временные, не критичные, критичные.
13. Типы взаимодействия процессов: сотрудничающие и конкурирующие
процессы. Критические секции, взаимное исключение процессов (задач).
14. Проблемы, возникающие при синхронизации задач и идеи их разрешения.
15. Состояния процесса и механизмы перехода из одного состояния в другое.
16. Стандарты на UNIX системы.
17. Управление процессами. Функции fork, execl, execv, waitpid. Примеры
использования.
18. Работа с сигналами. Функция signal. Пример использования.
19. Разделяемая память. Функции shmget, shmat, shmctl. Примеры
использования.
20. Семафоры. Функции semget, semop, semctl. Примеры использования.
21. События. Примитивные операции. Организация взаимодействия клиент-
сервер с помощью событий.
22. Очереди сообщений. Функции msgget, msgsnd, msgrcv, msgctl. Примеры
использования.
23. Управление задачами (threads). Функции pthread_create, pthread_join,
sched_yield. Примеры использования.
24. Объекты синхронизации типа mutex. Функции pthread_mutex_init,
pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock,
pthread_mutex_destroy. Примеры использования.
25. Объекты синхронизации типа condvar. Функции pthread_cond_init,
pthread_cond_signal, pthread_cond_broadcast, pthread_cond_wait,
pthread_cond_destroy. Примеры использования.
26. Пример multithread программы умножения матрицы на вектор.
27. Message Passing Interface (MPI). Общая структура MPI-программы.
Функции MPI_Init, MPI_Finalize. Сообщения и их виды.
28. Коммуникаторы. Функции MPI_Comm_size, MPI_Comm_rank. Примеры
использования.
29. Попарный обмен сообщениями. Функции MPI_Send, MPI_Recv. Примеры
использования.
30. Операции ввода-вывода в MPI программах. Примеры.
31. Дополнительные возможности для попарного обмена сообщениями. Функции
MPI_Sendrecv, MPI_Sendrecv_replace.
32. Дополнительные возможности для попарного обмена сообщениями. Функции
MPI_Isend, MPI_Irecv, MPI_Test, MPI_Testany, MPI_Wait, MPI_Waitany.
33. Коллективный обмен сообщениями. Функции MPI_Barrier, MPI_Abort,
MPI_Bcast.
34. Коллективный обмен сообщениями. Функции MPI_Reduce, MPI_Allreduce,
MPI_Op_create, MPI_Op_free. Пример MPI программы, вычисляющей определенный
интеграл.
35. Время в MPI программах. Функции MPI_Wtime, MPI_Wtick. Пример
использования.
36. Пример MPI программы умножения матрицы на вектор.
37. Дополнительные возможности для коллективного обмена массивами данных.
Функции MPI_Gather, MPI_Allgather, MPI_Scatter.
38. Пересылка структур данных. Создание нового MPI типа данных с помощью
MPI_Type_struct. Функции MPI_Address, MPI_Type_commit, MPI_Type_free.
Пример использования.
39. Упаковка/распаковка разнородных данных для блочной пересылки с
помощью функций MPI_Pack, MPI_Unpack. Функция MPI_Pack_size. Пример
использования.
40. Гетерогенные и однородные вычислительные установки. Пересылка
структур данных в однородных параллельных ЭВМ. Примеры.
41. Пересылки строк и столбцов матриц. Создание нового MPI типа данных с
помощью MPI_Type_vector. Пример использования.
42. Ограничение коллективного обмена на подмножество процессов. Функции
MPI_Comm_group, MPI_Group_incl, MPI_Comm_create, MPI_Comm_free. Примеры
использования.

Литература
1. Богачев К.Ю. Основы параллельных вычислений. Том 1. М., изд-во ЦПИ при
мех-мат. ф-те МГУ им. М.В. Ломоносова, 2002.
2. Богачев К.Ю. Основы параллельных вычислений. Том 2. М., изд-во ЦПИ при
мех-мат. ф-те МГУ им. М.В.Ломоносова, 2002.