программное обеспечение параллельных вычислений

 

новое поколение суперЭВМ

 
 

Близится время, когда появится новое поколение суперЭВМ. Создатели вычислительных машин, неспособные обеспечить достаточную производительность только за счет быстрых аппаратных компонентов, предлагают ныне многопроцессорные системы как новое направление в области разработки ЭВМ. Как и при внедрении первого векторного процессора, теперь появилась необходимость в освоении других форм высокоскоростных вычислений. Цель данной работы состоит в рассмотрении вопросов и ситуаций, с которыми можно встретиться при подготовке к такому переходу. Сделаем два основных предположения относительно условий использования многопроцессорных систем.

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

Идея параллельной обработки непосредственно поднимает много трудных вопросов. Рассмотрим, например, следующие: Какие средства и детские кровати можно использовать в программе для выражения различных форм параллелизма? Как необходимо описывать различные виды синхронизации? Какой эффект будет давать параллельная обработка на тех типах алгоритмов, которые наилучшим образом используют многопроцессорную систему? Будут ли различные виды параллелизма приводить к неповторяемости результатов выполнения программ? o Как отлаживать параллельные программы? Каким образом определить, когда параллельную программу можно считать корректной? Большая часть этих вопросов будет рассматриваться здесь в двух направлениях. В следующем разделе описаны четыре свежих и характерных примера, связанные с попыткой программирования многопроцессорных систем. В каждом случае описывается основная задача, которую предстояло решить на конкретной машине. Затем описываются результаты наблюдения за поведением программы и стратегии отладки при попытках устранения ошибок. Каждый пример задачи завершается анализом основных причин возникших проблем и извлечением уроков соответствующего эксперимента. Вслед за этим разделом обсуждаются четыре базовые стратегии программирования многопроцессорных систем, которым было уделено большое внимание в литературе по вычислительным наукам. Для каждой из стратегий сделана попытка оценить перспективы ее применения к решению крупномасштабных научных задач, решаемых в Ливерморской национальной лаборатории им. Лоуренса и в Лос-Аламосской национальной лаборатории. Вводится описание среды параллельного программирования, обеспечиваемой машиной и операционной системой, отмечается, какие особенности аппаратных средств параллельных машин проявляются в программном обеспечении. Дано также описание обычной последовательности разработки программ, включающее краткое описание шагов разработки, отладки и измерения времени выполнения параллельной программы.

 
 
 
Copyright (c) 2009. Использование материалов данного сайта возможно только при проставлении активной, не закрытой от индексации гиперссылки. http://soft-tlt.ru