Учебное пособие москва мади 2020 ббк 32. 81 В 683 Волосова, А. В. В683



Download 5,19 Mb.
Pdf ko'rish
bet85/101
Sana16.10.2022
Hajmi5,19 Mb.
#853454
TuriУчебное пособие
1   ...   81   82   83   84   85   86   87   88   ...   101
Bog'liq
fel20E533

 
14.2.3. Система программирования mpС 
Язык mpС ‒ первый язык высокого уровня, разработанный специально 
для программирования неоднородных сетей. Он имеет все средства для 
определения основных свойств параллельного алгоритма, влияющие на 
скорость его выполнения в неоднородной вычислительной среде: 
необходимое число параллельных процессов; объем вычислений и 
передаваемых данных в рамках каждого процесса; сценарий взаимодействия 
процессов и т.д. mpC позволяет менять эти характеристики динамически во 
время выполнения программы. Информация, извлеченная из описания 
параллельного алгоритма, вместе с данными о реальной производительности 
процессоров 
и 
коммуникационных 
каналов, 
помогает 
системе 
программирования mpC найти эффективный способ отображения процессов 
mpC-программы на компьютеры сети. 


148 
Язык и система программирования mpC разработана в Институте 
системного программирования РАН. Детали описания и текущее состояние 
проекта можно найти на сайте http://www.ispras.ru/~mpc. 
Основы программирования на 
mpC
mpC-программа 
‒ 
множество 
параллельных 
процессов, 
взаимодействующих посредством неявной передачи сообщений. Количество 
процессов, составляющих программу и характеристики компьютеров, на 
которых эти процессы выполняются, указываются пользователем программы 
в момент ее запуска. Реализацию этого механизма обеспечивают внешние 
средства. Код на mpC, составленный в соответствии с моделью SPMD, 
управляет тем, какие именно вычисления выполняются каждым из процессов 
программы. 
Группа процессов, совместно выполняющих некоторый параллельный 
алгоритм, в языке mpC называется сетью. Сеть в mpC ‒ механизм, 
позволяющий программисту абстрагироваться от реальных физических 
процессов параллельной программы. В простом случае сеть - множество 
виртуальных процессоров.
Определение сети в программе вызывает создание группы реальных 
процессов, представляющей эту сеть: каждому виртуальному процессору 
соответствует отдельный процесс параллельной программы. В разные 
моменты времени выполнения параллельной программы один и тот же 
реальный 
параллельный 
процесс 
может 
представлять 
различные 
виртуальные процессоры различных сетей. 
Вопросы и задания 
1. 
Какие конструкции языка С препятствуют автоматическому 
распараллеливанию программ? 
2. 
Отвечая на предыдущий вопрос, вы сформировали список 
конструкций, 
препятствующих 
автоматическому 
распараллеливанию 
программ. Внимательно проанализируйте полученный список и подумайте, 


149 
верно ли такое утверждение: "Любую программу, в которой нет конструкций 
из списка, можно автоматически распараллелить"? 
3. 
В цикле содержится вызов функции. Какие конструкции языков 
необходимо учитывать, чтобы определить, являются ли все итерации данного 
цикла независимыми или нет? Рассмотрите языки С и Fortran. 
4. 
Какой вычислительной системе лучше соответствует технология 
ОрепМР: вычислительному кластеру из рабочих станций или SMP-
компьютеру? 
5. 
Чем отличаются понятия "процесс" и "нить"? 
6. 
Верно ли утверждение: "OpenMP-программы работают согласно 
модели SingleProgram Multiple Data (SPMD)?" 
7. 
Чем различаются общие и локальные переменные в 
последовательной секции ОреnМР-программы? 
8. 
Допускает ли ОреnМР изменение числа параллельных нитей по 
ходу работы программы? 
9. 
Как будет обрабатываться такая конструкция: в параллельном 
цикле стоит вызов функции, в теле которой так же есть параллельный цикл? 
10. 
Почему в ОрепМР нет конструкций, аналогичных директивам 
DVM ALIGN и 
DISTRIBUTE? 
11. 
Предположим, что в ОрепМР не было бы директивы BARRIER. 
Смоделируйте барьерную синхронизацию нитей с помощью других средств 
ОрепМР, в частности, с помощью механизма критических секций. 
12. 
Можно ли автоматически конвертировать DVM-программу в 
программу на ОреnМР? 
13. 
Напишите с помощью ОреnМР, DVM и трС программы 
перемножения двух матриц, решения системы линейных уравнений методом 
Гаусса, нахождения обратной матрицы. Проанализируйте выполненную 
работу с точки зрения эффективности полученных программ, простоты 
написания программ, переносимости программ. 


150 
14. 
Проанализируйте, что общего и чем различаются классы
переменных вОреnМР, DVM и трС. 
15. 
Для чего в DVM введена директива ALIGN? 
16. 
Сравните модели выполнения параллельных циклов в ОреnМР и 
DVM. 
17. 
Для нахождения суммы элементов вектора в рамках ОреnМР при 
сложении частичных сумм можно воспользоваться критической секцией. Как 
выполнить эту же операцию в DVM? 

Download 5,19 Mb.

Do'stlaringiz bilan baham:
1   ...   81   82   83   84   85   86   87   88   ...   101




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish