ВКР: Диалоговая оболочка системы автоматизации распараллеливания программ (только введение)
Описание
Персональные компьютеры достигли достаточно высокой производительности. Однако когда речь заходит о решении очень больших задач, даже такая производительность оказывается недостаточной. Дальнейшее наращивание мощности в рамках последовательной обработки информации ограничено. Поэтому возникла идея параллельных вычислений, которая позволяет наращивать мощность вычислительной системы за счет объединения большого количества процессоров, работающих параллельно. Можно выделить четыре основных преимущества многопроцессорных параллельных архитектур по сравнению с однопроцессорными последовательными. Во-первых, применение многопроцессорных архитектур - единственный способ построения наиболее высокопроизводительных вычислительных систем. Построив даже мощный процессор, можно еще больше увеличить его производительность, если объединить несколько из них в единую систему. Во-вторых, отношение стоимости к производительности для многопроцессорных вычислительных систем ниже, чем для однопроцессорных, но только в случае постоянной загрузки всех устройств, что требует значительных усилий. В-третьих, многопроцессорные вычислительные системы обладают свойством масштабируемости и позволяют наращивать вычислительную мощь. В-четвертых, параллельные системы являются отказоустойчивыми, что является важным преимуществом для ряда областей.
Можно выделить два основных типа архитектур параллельных вычислительных систем: с общей памятью и с распределенной памятью. К системам с общей памятью относятся компьютеры с SMP архитектурой, различные разновидности NUMA систем и мультипроцессорные векторно-конвейерные компьютеры. Характерным словом для этих компьютеров является “единый”: единая оперативная память, единая операционная система, единая подсистема ввода-вывода. Только процессоры образуют множество. Для распараллеливания программ используется механизм порождения нитей – легковесных процессов, для которых не создается отдельного адресного пространства. Нити на многопроцессорных системах распределяются по процессорам.
Среди систем программирования для модели общей памяти наиболее популярна система OpenMP, реализующая модель параллелизма по управлению. В OpenMP входят спецификации набора директив компилятору, процедур и переменных среды. Разработчик добавляет в текст последовательной программы OpenMP-директивы. При этом система программирования OpenMP предоставляет разработчику большие возможности по контролю над поведением параллельного приложения. Вся программа разбивается на последовательные и параллельные области. Все последовательные области выполняет главная нить, порождаемая при запуске программы, а при входе в параллельную область главная нить порождает дополнительные нити. Предполагается, что OpenMP-программа без какой-либо модификации должна работать как на многопроцессорных системах, так и на однопроцессорных. В последнем случае директивы OpenMP просто игнорируются.
В системах с распределенной памятью на каждом вычислительном узле функционирует собственные копии операционной системы, под управлением которых выполняются независимые программы. Это могут быть как действительно независимые программы, так и параллельные ветви одной программы. В этом случае единственно возможным механизмом взаимодействия между ними является механизм передачи сообщений.
Чтобы добиться максимальной производительности при реализации механизма передачи сообщений необходимо учитывать особенности архитектуры многопроцессорной системы. Но в этом случае программа будет ориентирована на конкретную среду.
Существует множество реализаций механизма передачи сообщений, независимых от конкретной платформы. Наиболее известными из них являются EXPRESS компании Parasoft и коммуникационная библиотека PVM (Parallel Virtual Machine), разработанная вХарактеристики ВКР
Список файлов
