Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2021-01-31 | 53 |
5.00
из
|
Заказать работу |
|
|
|
|
|
«Ничем не скроешь фундаментальную трудность параллелизма», – так прозвучало заявление Мартина Одерски (Martin Odersky) в его приглашенном докладе на 20-й Международной конференции
«Конструирование компиляторов», состоявшейся в марте 2011 года в Германии под председательством Дженса Кнопа (Jens Knoop) [21]. Несмотря на многочисленные призывы и конкурсы, пока не появилось общих идей по новому поколению языков и систем программирования (ЯСП), в которых параллелизм имел бы самостоятельное значение, а не рассматривался бы (по понятным причинам) как пристройка к традиционному программированию.
8.1.
Пространство решений
Рост интереса к параллельному программированию в наши дни связан с пе- реходом к массовому производству многоядерных архитектур. Ознакомление с понятиями и явлениями параллельного программирования в данном матери- але нацелено на профилактику прочного привыкания к принципам традицион- ного последовательного программирования. Такая профилактика необходима для специализации в области разработки распределенных информационных систем, а также приложений для суперкомпьютеров, многопроцессорных кон- фигураций и графических процессоров.
Современное развитие ЯСП на практике ориентировано на решение задач параллельного программирования. Как правило, новые ЯСП включают в себя библиотечные модули, обеспечивающие организацию процессов, или подъязыки, допускающие многопоточное программирование. Это не ис- ключает реальную практику ручного распараллеливания ранее отлаженных обычных программ, приведения их к виду, удобному для применения про- изводственных систем поддержки параллельных вычислений. Значитель- ная часть таких работ носит технический характер и заключается в систе- матической реорганизации структур данных, изменении статуса перемен- ных и включении в программу аннотаций, сообщающих компилятору об информационно-логических взаимосвязях. Существенным ограничением результата ручного распараллеливания является не только опасность по- вторной отладки алгоритма, но и его жесткая зависимость от характеристик целевой архитектуры.
|
|
Рассматривая задачу формализации языков параллельного программирования как путь к решению проблемы адаптации программ к различным особенностям используемых многопроцессорных комплексов и многоядерных процессоров, мы видим, что решение этой проблемы требует
|
Параллельные алгоритмы
Обзор решений, встречающихся при организации параллельных процес- сов для реализации параллельных алгоритмов, дает некоторое представление о разнообразии многопроцессорных архитектур и систем:
– процессоров может быть много, и они могут обладать разными систе- мами команд;
– процессоры могут работать автономно или сообща выполнять общую работу;
– отдельные процессоры могут функционировать вхолостую, не выпол- няя полезной работы;
– процессоры имеют свою локальную память и могут работать в общей памяти;
– соседние процессоры могут быть приспособлены к сверхбыстрому об- мену данными;
– распределение действий по процессорам может быть предписано про- граммой, а может осуществляться супервизором, поддерживающим опреде- ленную модель вычислений.
|
|
Переход к параллельным алгоритмам влечет пересмотр содержания многих понятий и введение новых терминов, отражающих разного рода явления и эффекты, не имевшие особого значения для обычных последовательных алгоритмов. В мире параллелизма все базовые понятия программирования претерпели изменение или расширение (программа, ветвление, цикл, событие, память, результат). Появился ряд специфических для параллельного программирования понятий (процессор, поток, ожидание,
|
|
Прежде всего, следует прояснить следующие вопросы, связанные с фор- мулировкой постановки задачи:
1. Не слишком ли возрастет трудоемкость жизненного цикла программы решения задачи с помощью параллельного алгоритма?
2. В какой мере при постановке задачи следует учитывать модель парал- лелизма?
3. Как обосновать и измерить выигрыш от разработки параллельного ал- горитма?
4. Насколько изменяется постановка задачи при переходе к параллель- ным алгоритмам?
5. Что дает парадигма параллельного программирования на уровне раз- работки параллельного алгоритма?
6. Какими средствами представляются разрабатываемые параллельные алгоритмы решения задачи на этапе, предшествующем разработке про- граммы?
|
Основной аргумент – целесообразность учета естественного паралле- лизма на уровне постановки задачи, утрачиваемого при решении задачи по-
средством обычных алгоритмов. Число языков параллельного программиро- вания, удобных для реализации параллельных алгоритмов год от года растет, хотя и их применение решает не все проблемы организации параллельных вычислений.
Итак, параллельный алгоритм может быть реализован по частям на мно- жестве различных устройств с последующим объединением полученных ре- зультатов и получением целевого результата. Возникают практические во- просы:
– Каким образом в определении алгоритма выделены части, выполняемые отдельными устройствами?
– Обязана ли реализация алгоритма использовать в точности представленный в его определении набор устройств?
–
|
Следующая обойма вопросов касается категории «время» и связана с про- блемами синхронизации:
– Могут ли части параллельного алгоритма обладать своим независимым или централизованным отсчетом времени?
|
– Допустимо ли при синхронизации частей алгоритма противоречить его информационным связям и логике управления?
– Можно ли синхронизацию частей алгоритма рассматривать как частный случай асинхронности?
Особые сложности параллелизма вызывают вопросы доступа к памяти:
– Каким образом взаимодействующие части параллельного алгоритма об- мениваются данными?
– Полезно ли частям параллельного алгоритма изменять состояние общей памяти и памяти других частей?
– Может ли часть параллельного алгоритма воспрепятствовать использо- ванию своей памяти другими частями?
|
И все же, сколь ни сложен мир параллелизма, программистам предстоит его понять и освоить!
Интересно отметить появление новых архитектур, обладающих полным набором команд с условным исполнением.
|
Интересно рассмотреть перспективы развития парадигм программирова- ния, обусловленных изменением условий эксплуатации современных инфор- мационных систем, особенно связанных с повсеместным распространением сетевых технологий, меняющих критерии оценки качества программ и ме- тоды обеспечения надежности и производительности программирования. Две основные линии такого развития – разработка распределенных информа- ционных систем (РИС) и компонентное программирование (КП).
При практичном решении проблемы разработки языков параллельного программирования и подходов к их реализации в центре внимания вопросы выбора лаконичных форм представления программ, обеспечения конструк- тивных построений, гарантирующих сохранение правильности программ при их реорганизации, и поддержки расширяемости языка по мере развития средств и методов параллельного программирования.
|
Исследования в области параллельного пограмирования осложнены не- четкостью речевой практики, отчасти обусловленной различиями в рас- кладке понятий в разных естественных языках. Например, английские тер- мины «thread» и «streem» нередко переводятся на русский как термин «по- ток», хотя первое – это «поток управления», а второе – «поток данных».
Варьирование правил функционирования сетей допускает как асинхрон- ную, так и синхронную организацию срабатывания действий, включая дози- рование нагрузки и специализацию процессоров, а также распределение дей- ствий по потокам выполнения. Использование иерархических, многоуровне- вых, структурированных и расширяемых сетей обеспечивает моделирование практически любых, накопленных в языках программирования, техник про- граммирования и представления структур данных.
|
|
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!