Составители:
Рубрика:
существу представляют собой огромное количество физических
процессов, взаимодействующих друг с другом, является наиболее
естественным путем моделирования. Без связи с распараллелива-
нием моделирование процессов в том или ином смысле рассмат-
ривалось давно: метод частиц в ячейках, метод конечных элемен -
тов, метод сеток и другие методы, фактически, приводят к похо-
жему результату. Конечно, распараллеливание несет в себе боль-
шие трудности, но и вселяет значительные надежды. Исследова-
ния в этой области, практическое освоение теоретических резуль-
татов, создание соответствующего программного обеспечен ия, от-
ладка программ на параллельных системах и проведени е эффек-
тивных вычислений представляются чрезвычайно важными.
Предлагаемый курс лекций посвящен в основном параллельно-
му программированию на вычислительных системах с распределен-
ной памятью, хотя часть представленной информации можно отне-
сти и к системам с общей памятью. Использование параллельных
процессов существенно усложняет программирование: эффектив-
ность увеличивается с увеличением независимости процессов, но
из-за этого приходится ослаблять контроль за вычислениями. Про-
цессы находятся в постоянной конкурентной борьбе за ресурсы, но
поскольку в совокупности они решают одну задачу, то необходимы
моменты синхронизации и обмена полученной информацией.
Для написании параллельных пр ограмм используются специ-
альные средства, которые могут предоставляться в виде специаль-
ных библиотек или расширений известных языков (например, биб-
лиотеки MPI, Open MP, PVM, язык Linda для Fortran, C, C++);
одн ако, основное внимание следует уделять принципам использова-
ния этих средств: именно эти принципы рассматриваются в первую
очередь в данном курсе лекций. Поскольку курс расчитан на 36
лекционных часов, многие полезные аспекты здесь не рассмотрива-
ются в надежде, что любознательный читатель сможет почерпнуть
недостающие сведения из книг [1-7], содержание которых частично
отраже но в д анном курсе лекций.
Курс лекций содержит шесть глав, первая из которых посвя-
щена прог рамм ир ованию с использованием передачи сообщени й,
вторая — мониторам и условным переменным; в третьей главе вво-
дится понятие рандеву и рассматриваются активные мониторы, а
четвертая глава посвящена операторам взаимодействия. В пятой
4