How to create deterministic by construction parallel programs? Problem statement and survey of related works
Как создавать параллельные программы, детерминированные по построению? Постановка проблемы и обзор работ

Alexei Adamovich, Andrei Klimov
2017 Program systems theory and applications  
Как создавать параллельные программы, детерминированные по построению? Постановка проблемы и обзор работ Аннотация. Одна из основных проблем, делающих параллельное программирование ненадежным, трудозатратным, подверженным ошибкам, а программы трудно отлаживаемыми, --недетерминированность процессов и результатов вычислений, когда несколько исполнений одной программы с одинаковыми входными данными могут выдавать разные результаты изза другого порядка взаимодействия параллельных процессов. В связи
more » ... процессов. В связи с бурным ростом сложности программ для суперкомпьютеров, в последнее десятилетие приобретает популярность и становится всё более актуальной идея параллельных вычислений с детерминированностью, гарантированной языком и системой программирования. В статье анализируется проблема, как сделать параллельное программирование как можно более детерминированным, и дается обзор некоторых подходов к ее решению. Также обсуждается задача разработки системы, предоставляющей возможность писать как детерминированный, так и недетерминированный код с гарантиями прикладному программисту, что его программа будет детерминированной. Ключевые слова и фразы: модели параллельных вычислений, детерминированные программы, функциональное программирование, объектно-ориентированное программирование. 1 Мы не противопоставляем понятия «parallel» и «concurrent» так, как это принято в англоязычной литературе, и используем слово «параллельной» для всей области, которую «там» именуют «parallel and concurrent». По нашим наблюдениям, в русскоязычной литературе это разделение проводится, как правило, только если эту нужно для конкретного обсуждения, и более того, для слова «concurrent» не сложилось благозвучного перевода, кроме как вызывающего побочные ассоциации «конкурентный».
doi:10.25209/2079-3316-2017-8-4-221-244 fatcat:4b644yy3ofdtlovuo46czv3lvi