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

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

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

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

2021-01-31 83
Модели параллелизма в языках программирования 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.006 с.