Cтраница 1
Параллельное программирование сводится к разбиению программных функций на отдельные параллельные процессы, способные работать самостоятельно в течение значительных интервалов времени. Если, например, в распоряжении программиста имеется многопроцессорная вычислительная машина, то задачу поиска нужных элементов в длинном списке он может решать параллельно, применив каждый процессор для независимого просмотра небольшой части списка. Однако параллельные поисковые процессы могут все же обращаться к общим данным, и поэтому нельзя обойтись без синхронизации. Части параллельно выполняющихся программ, служащие для обработки совместно используемых данных, представляют собой критические секции. [1]
Язык параллельного программирования, разработанный фирмой INMOS, в первую очередь для применения на вычислительных машинах с большим числом процессоров. В языке Occam все операции трактуются как отдельные процессы, взаимодействующие посредством входных и выходных каналов. [2]
Метод параллельного программирования, в котором на независимые операторы накладываются ограничения на порядок их выполнения в форме явно указываемых или неявно подразумеваемых индивидуальных условий готовности, связанных с каждым оператором, получил название асинхронного программирования. Условия готовности динамически проверяются и разрешают или не разрешают ( но не предписывают) начать выполнение операторов, с которыми данные условия связаны. [3]
Системы параллельного программирования построены по принципу модели коллектива вычислителей. Как правило, в их основу закладываются существующие общепризнанные алгоритмические языки ( Алгол, Фортран и др.), дополняемые минимальным набором системных операций. [4]
В параллельном программировании существует как минимум два подхода. Первый предполагает разделение данных между исполнителями и дальнейшую независимую обработку каждым исполнителем своей части данных. Второй подход предполагает кооперативное ( совместное) владение данными всеми исполнителями и сложную систему регулировки отношений между исполнителями в процессе обработки совместных данных. [5]
При параллельном программировании - отрезок программы, который должен выполняться без прерываний со стороны других процессов. [6]
В параллельном программировании - характеристика программы, определяемая объемом неделимых параллельно выполняемых фрагментов. [7]
В параллельном программировании используются очень похожие средства. Существуют многозадачные системы, в которых каждый процессор выполняет одни и те же операции над различными данными. Имеются конвейерные системы, в которых каждый процессор осуществляет лишь один шаг задания, передавая результаты следующему процессору, который делает очередной шаг. Системы с потоками данных представляют собой последовательность процессоров, сформированную для выполнения определенного задания; для вычисления результата данные передаются от одного процессора к другому. [8]
В параллельном программировании существует как минимум два подхода. Первый предполагает разделение данных между исполнителями и дальнейшую независимую обработку каждым исполнителем своей части данных. Второй подход предполагает кооперативное ( совместное) владение данными всеми исполнителями и сложную систему регулировки отношений между исполнителями в процессе обработки совместных данных. [9]
В параллельном программировании - характеристика программы, определяемая объемом неделимых параллельно выполняемых фрагментов. [10]
Широкое применение принципов параллельного программирования, позволяющих эффективно использовать имеющиеся вычислительные мощности, а также задавать принципиально новые методы решения прикладных задач, которые не могут быть решены традиционно. [11]
Там же рассматриваются вопросы параллельного программирования и организации параллельных вычислений. [12]
Проблема создания эффективных систем параллельного программирования, ориентированных на высокоуровневое распараллеливание алгоритмов вычислений и обработки данных, представляется достаточно сложной и предполагает дифференцированный подход с учетом сложности распараллеливания и необходимости синхронизации процессов во времени. [13]
В современной литературе по параллельному программированию интенсивно исследуются программы с независимыми операторами и способы корректного и рационального разбиения их на параллельные ветви. Гораздо меньше внимания уделяется логике перехода от зависимых операторов к независимым. Этому вопросу посвящена работа [ 111, где задача распараллеливания трактуется как задача эквивалентного преобразования последовательной композиции нормальных алгоритмов к параллельной композиции. [14]
Эта глава служит введением в параллельное программирование. [15]