Модели параллелизма в языках программирования — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Модели параллелизма в языках программирования

2021-01-31 84
Модели параллелизма в языках программирования 0.00 из 5.00 0 оценок
Заказать работу

История языков программирования накопила целый ряд примеров лако- ничных форм представления программ, начиная с умолчаний, неявных цик- лов и операторов ввода-вывода в языке Fortran. С точностью до реализацион- ной прагматики, при разработке языков параллельного программирования можно унаследовать языковые конструкции и механизмы из привычных па- радигм программирования и зарекомендовавших себя языков параллельного программирования.

Прежде всего, это алгебраические механизмы распространения функций и операций относительно структур данных, предложенные в первом языке параллельного программирования APL. Дальнейшее упрощение изобрази- тельных средств управления параллелизмом дает предложенный в языке Sisal подход к неявному распараллеливанию циклов на основе построения про- странства итераций по пространству обрабатываемых данных.

 
Еще острее становятся проблемы разработки, отладки, тестирования и ве- рификации параллельных программ по сложности весьма превосходящие обычное программирование. Именно здесь сосредоточена исследовательская активность современного языкотворчества и системного программирования, поиск средств и методов интеграции удачного опыта параллельного програм- мирования и успешного обучения методам параллельных вычислений. Ак- цент на анализ подходящих решений в области разработки переносимых про- грамм, средств визуализации процессов, типизации управления и дисци- плины доступа к памяти.

Существуют версии ряда стандартных языков императивного программи- рования, приспособленные к выражению взаимодействия последовательных процессов в предположении, что в каждый момент времени существует лишь один процесс. При таком подходе в программе выделяются критические ин- тервалы, учет которых полезен при распараллеливании программ. Многие традиционные языки программирования приспособлены к выражению ло-

 

 

28 Бурдонов И. Б., Косачев А. С., Кулямин В. В. Теория соответствия для систем с бло- кировками и разрушением. М.: Наука. Глав. ред. физ.-мат. лит., 2008. 412 c.


 

 

кального параллелизма с помощью специальных расширений или библиотеч- ных функций, обеспечивающих выделение участков с независимыми дей- ствиями, пригодными для распараллеливания компилятором.

Большие надежды связаны со строго функциональным подходом к спе- цификации параллельных программ и типов данных в языке с предпочтением так называемой «ленивой» схемы вычислений. Противопоставление досто- инств и недостатков «ленивых» и «энергичных» методов вычислений отча- сти смягчается концепцией «монад» в строго функциональном языке про- граммирования Haskell. Особенности определения семантики языковых кон- струкций по-прежнему не отражают решение проблем обеспечения удобочитаемости программ и их отладки. Табулирование сложных вычисле- ний, называемое «мемоизация», становится популярным практичным ин- струментом снижения сложности вычислений.

 
В настоящее время существуют сотни функциональных языков программирования, ориентированных на разные классы задач параллельного программирования. Языки функционального программирования обогатились типовыми средствами практически всех известных подходов к представлению программ и организации вычислительного эксперимента и информационных процессов. Обеспечена организация параллельных процессов. Возможна визуализация данных и программ. Имеются средства стандартного и объектно-ориентированного программирования. Поддержано управление компиляцией и конструирование компиляторов. На сегодняшний день утратили актуальность опасения относительно ресурсно- эксплуатационных трудностей функционального программирования. Функциональное программирование вносит свой вклад техникой рекурсивных определений и отображений, параллелизмом обработки аргументов функций, ленивых вычислений, а также сведением понятия

 
«условия» в ветвлениях к понятиям «страж» или «образец». В семействе практичных языков функционального программирования заметное место занимают языки организации распределенных и параллельных вычислений. Практики с большой похвалой отзываются о языке функционального программирования Erlang фирмы Ericsson.

Разнообразие подходов к представлению параллельных программ можно оценить по ряду весьма различных ЯП, содержащих изобразительные сред- ства, направленные на решение проблем организации параллельных процес- сов.

 

Fortran-сопрограммы

Средства представления параллельных вычислений доступны, начиная с первых языков высокого уровня. Языки Fortran II и Fortran IV были доста-


 

 

 
точно универсальны для представления программ организации параллель- ных процессов. Механизм сопрограмм, допускающий многовходовые (Entry) процедуры, позволял представлять программы взаимодействующих процес- сов и декомпозировать программу на управляющую и вычисляющую части, выглядящие как независимые компоненты программы, но это не привело к практике параллельного программирования и постепенно сопрограммы пре- вратились модули, обеспечивающие представление иерархии функций по- добно иерархии классов в ООП. Синтаксически средства параллельного про- граммирования выглядят в современных Fortran-программах как разметка текста ключевыми словами и вызовы библиотечных функций.

 


Поделиться с друзьями:

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.