Параллелизм как основа высокопроизводительных вычислений

Проблема высокопроизводительных вычислений. Классификация параллельных вычислительных систем. Параллелизм, его методы и средства реализации, недостатки и ограничения. Специфичность параллельных вычислений и законы, отрицающие их практическое применение.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 25.12.2014
Размер файла 396,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Параллелизм

1.1 Уровни параллелизма

1.2 Параллелизм уровня задания

1.3 Параллелизм уровня программ

1.4 Параллелизм уровня команд

1.5 Профиль параллелизма программы

2. Недостатки и ограничения параллелизма

2.1 Закон Амдала

2.2 Закон Густафсона

2.3 Закон Гроша

2.4 Гипотеза Минского

Заключение

Список литературы

Введение

Проблема высокопроизводительных вычислений

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

Возьмем самую общую формулу производительности:

Видим, что производительность можно измерять в количестве выполняемых инструкций за секунду.

Распишем процесс поподробнее, введем туда тактовую частоту:

Первая часть полученного произведения -- количество инструкций, выполняемых за один такт, вторая -- количество тактов процессора в единицу времени, тактовая частота.

Таким образом, для увеличения производительности нужно или поднимать тактовую частоту или увеличивать количество инструкций, выполняемых за один такт.

Как уже было сказано выше, прием увеличения частоты не оправдал себя. В связи с этим начал использоваться прием параллелизма - прием, при котором несколько инструкций выполняются за один такт параллельно. Так, например, при выполнении простейшей программы

a = 1

b = 2

c = a + b

операции присвоения можно выполнять одновременно, за один такт, следовательно, программа выполняется не за три шага, а за два.

Классификация параллельных вычислительных систем

Среди всех рассматриваемых систем классификации ВС наибольшее признание получила классификация, предложенная в 1966 году М. Флинном. В ее основу положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. В зависимости от количества потоков команд и потоков данных Флинн выделяет четыре класса архитектур: SISD, MISD, STMD, MIMD.

SISD

SISD (Single Instruction Stream/Single Data Stream) -- одиночный поток команд и одиночный поток данных (рис. 1, а). Представителями этого класса являются, прежде всего, классические фон-неймановские ВМ, где имеется только один поток команд, команды обрабатываются последовательно и каждая команда инициирует одну операцию с одним потоком данных. То, что для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка, не имеет значения, поэтому в класс SISD одновременно попадают как ВМ CDC 6000 со скалярными функциональными устройствами, так и CDC 7600 с конвейерными. Некоторые специалисты считают, что к SISD-системам можно причислить и векторно-конвейерные ВС, если рассматривать вектор как неделимый элемент данных для соответствующей команды.

MISD

MISD (Multiple Instruction Stream/Single Data Stream) - множественный поток' команд и одиночный поток данных (рис. 1, б). Из определения следует, что в архитектуре ВС присутствует множество процессоров, обрабатывающих один и тот же поток данных. Примером могла бы служить ВС, на процессоры которой подается искаженный сигнал, а каждый из процессоров обрабатывает этот сигнал с помощью своего алгоритма фильтрации. Тем не менее ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не сумели представить убедительный пример реально существующей вычислительной системы, построенной изданном принципе. Ряд исследователей относят к данному классу конвейерные системы, однако это не нашло окончательного признанияю. Отсюда принято считать, что пока данный класс пуст. Наличие пустого класса не следует считать недостатком классификации Флинна. Такие классы, по мнению некоторых исследователей, могут стать чрезвычайно полезными для разработки принципиально новых концепций в теории и практике построения вычислительных систем.

Рис. 1. Архитектура вычислительных систем по Флинну: а -- SISD; б -- MISD; в-SIMD; г-- MIMD

SIMD

SIMD (Single Instruction Stream/Multiple Data Stream) - одиночный поток команд и множественный поток данных (рис. 1, в). ВМ данной архитектуры позволяют выполнять одну арифметическую операцию сразу над многими данными -- элементами вектора. Бесспорными представителями класса SIMD считаются матрицы процессоров, где единое управляющее устройство контролирует множество процессорных элементов. Все процессорные элементы получают от устройства управления одинаковую команду и выполняют ее над своими локальными данными В принципе в этот класс можно включить и векторно-конвейерные ВС, если каждый элемент вектора рассматривать как отдельный элемент потока данных.

MIMD

MIMD (Multiple Instruction Stream/Multiple Data Stream) -- множественный поток команд в множественный поток данных (рис. 1, г). Класс предполагает наличие в вычислительной системе множества устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных. Класс MIMD чрезвычайно широк, поскольку включает в себя всевозможные мультипроцессорные системы. Кроме того, приобщение к классу MIMD зависит от трактовки. Так, ранее упоминавшиеся векторно-конвейерные ВС можно вполне отнести и к классу MIMD, если конвейерную обработку рассматривать как выполнение множества команд (операций ступеней конвейера) над множественным скалярным потоком.

Схема классификации Флинна вплоть до настоящего времени является наиболее распространенной при первоначальной оценке той или иной ВС, поскольку позволяет сразу оценить базовый принцип работы системы, чего часто бывает достаточно. Однако у классификации Флинна имеются и очевидные недостатки, например неспособность однозначно отнести некоторые архитектуры к тому или иному классу. Другая слабость -- это чрезмерная насыщенность класса MIMD. Все это породило множественные попытки либо модифицировать классификацию Флинна, либо предложить иную систему классификации.

1. Параллелизм

1.1 Уровни параллелизма

Методы и средства реализации параллелизма зависят от того, на каком уровне он должен обеспечиваться. Обычно различают следующие уровни параллелизма:

¦ Уровень заданий. Несколько независимых заданий одновременно выполняются на разных процессорах, практически не взаимодействуя друг с другом. Этот уровень реализуется на ВС с множеством процессоров в многозадачном режиме.

¦ Уровень программ. Части одной задачи выполняются па множестве процессоров. Данный уровень достигается на параллельных ВС.

¦ Уровень команд. Выполнение команды разделяется на фазы, а фазы нескольких последовательных команд могут быть перекрыты за счет конвейеризации. Уровень достижим на ВС с одним процессором.

¦ Уровень битов (арифметический уровень). Биты слова обрабатываются один за другим, это называется бит - последовательной операцией. Если биты слова обрабатываются одновременно, говорят о бит - параллельной операции. Данный уровень реализуется в обычных и суперскалярных процессорах.

К понятию уровня параллелизма тесно примыкает понятие гранулярности. Это мера отношения объема вычислении, выполненных в параллельной задаче, к объему коммуникаций (для обмена сообщениями). Степень гранулярности варьируется от мелкозернистой до крупнозернистой. Определим понятия крупнозернистого (coarse grained), среднезернистого (medium grained) и мелкозернистого (fine grained) параллелизма.

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

Среднезернистый параллелизм: единицами распараллеливания являются вызываемые процедуры, включающие в себя сотни команд. Обычно организуется как программистом, так и компилятором.

Мелкозернистый параллелизм: каждое параллельное вычисление достаточно мало и элементарно, составляется из десятков команд. Обычно распараллеливаемыми единицами являются элементы выражения или отдельные итерации цикла, имеющие небольшие зависимости по данным. Сам термин «мелкозернистый параллелизм» говорит о простоте и быстроте любого вычислительного действия. Характерная особенность мелкозернистого параллелизма заключается в приблизительном равенстве интенсивности вычислений и обмена данными. Этот уровень параллелизма часто используется распараллеливающим (векторизирующим) компилятором.

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

1.2 Параллелизм уровня задания

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

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

SMLSSMLLSMM. Для этого списка имеем:

Время

Выполняемые задания

% использования ВС

1

S, M

75

2

L

100

3

S, S,М

100

4

L

100

5

L

100

6

S, М

75

7

M

50

¦ средний уровень использования ресурсов вычислительной системы равен 83,3%;

¦ на выполнение всех заданий требуется 7 единиц времени.

Для получения большей степени утилизации ресурсов ВС разрешим заданиям «выплывать» в начало очереди. Тогда можно получить следующую последовательность выполнения заданий: SMSLSMSLLMM. Здесь:

Время

Выполняемые задания

% использования ВС

1

S, М, S

100

2

L

100

3

S, М, S

100

4

L

100

5

L

100

6

М. М

100

- средний процент использования ресурсов ВС составляет 100%;

- на выполнение всех заданий требуется 6 единиц времени.

Параллелизм возникает также, когда у независимых заданий, выполняемых в ВС, имеются несколько фаз, например вычисление, запись в графический буфер, ввод-вывод на диск или лепту, системные вызовы.

Пусть выполняется задание и оно для своего продолжения нуждается в выполнении ввода/вывода. По сравнению с вычислениями он обычно более длителен поэтому текущее задание приостанавливается и запускается другое задание. Исходное задание активизируется после завершения ввода/вывода. Все это требует специального оборудования: каналов ввод-вывод или специальных процессоров ввода-вывода. За то, как различные задания упорядочиваются и расходуют общие ресурсы, отвечает операционная система.

1.3 Параллелизм уровня программ

О параллелизме на уровне программы имеет смысл говорить в двух случаях. Во-первых, когда в программе могут быть выделены независимые участки, которые допустимо выполнять параллельно. Примером такого вида параллелизма может служить программа робота. Пусть имеется робот, запрограммированный на обнаружение электрических розеток, когда уровень напряжения в его аккумуляторах падает. Когда робот находит одну из розеток, он включается в нее на подзарядку. В процесс вовлечены три подсистемы робота: зрение, манипуляция и движение. Каждая подсистема управляется своим процессором, то есть подсистемы при выполнении разных действий способны работать параллельно.

Задача

Зрение

Манипуляция

Движение

Поиск розетки

X

X

Движение к розетке

X

X

Подключение к розетке

X

X

Подсистемы достаточно независимы при ведущей роли системы зрения, Возможен также и центральный процессор -- «мозг». Это пример параллелизма программ, в котором разные задачи выполняются одновременно для достижения общей цели.

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

For I:= I to N do

A(I):= B(I)+ C(I)

Все суммы независимы, значит, вычисления могут производиться в любой последовательности и в вычислительной системе с N процессорами все суммы могут быть вычислены одновременно.

Общая форма параллелизма на уровне программ проистекает из разбиения программируемых данных на подмножества. Это разделение называют декомпозицией области (domain decomposition), а параллелизм, возникающий при этом, носит название параллелизма данных. Подмножества данных назначаются разным вычислительным процессам, и называется этот процесс распределением данных (data distribution). Процессоры выделяются определенным процессам либо по инициативе программы, либо в процессе работы операционной системой. На каждом процессоре может выполняться более чем один процесс.

1.4 Параллелизм уровня команд

Параллелизм на уровне команд имеет место, когда обработка нескольких команд или выполнение различных этапов одной и той же команды может перекрываться во времени. Разработчики вычислительной техники издавна прибегали к методам, известным под общим названием «совмещения операций», при котором аппаратура ВМ в любой момент времени выполняет одновременно более одной операции. Этот общий принцип включает в себя два понятия: параллелизм и конвейеризацию. Хотя у них много общего и их зачастую трудно различать на практике, термины эти отражают два принципиально различных подхода.

В первом варианте совмещение операций достигается за счет того, что в составе вычислительной системы отдельные устройства присутствуют в нескольких копиях Так, в состав процессора может входить несколько АЛУ, и высокая производительность обеспечивается за счет одновременной работы всех этих АЛУ. Второй подход был описан ранее.

1.5 Профиль параллелизма программы

Параллельные вычисления весьма специфичны, поэтому для оценки их эффективности имеются специальные характеристики. Одной из таких характеристик является профиль параллелизма программы - функция времени, являющаяся графическим представлением числа параллельно выполняющих задачу процессоров многопроцессорной системы. Это число называют степенью параллелизма и обозначают D(t) (или DOP, Degree Of Parallelism).

Предположим, что система состоит из n процессоров, максимальный параллелизм в профиле равен m и в идеале n>>m. Типичный профиль параллелизма для процесса декомпозиции показан на рис. 2.

Рис.2.

Общий объем работы вычислительных процессов пропорционален площади под кривой профиля параллелизма: W = Д ts - время начала, tc - время окончания.

Средний параллелизм A рассчитывается по формуле:

А=,

где i - количество процессоров, загруженных за наблюдаемый период.

Посчитаем средний параллелизм для графика, представленного выше. Здесь профиль параллелизма за время наблюдения (ts, tс) возрастает от 1 до пикового значения m = 8, а затем спадает до 0. Средний параллелизм A = (1x5 + + 2x3 + 3x4 + 4x6 + 5x2+ 6x2 + 8x3) / (5+ 3 + 4 + 6 + 2 + 2 + 3) = 93/25 = =3,72. Фактически общая рабочая нагрузка и А представляют собой нижнюю границу асимптотического ускорения.

высокопроизводительный вычислительный параллелизм

2. Недостатки и ограничения параллелизма

Ряд исследователей высказывают свои сомнения о возможности широкого практического применения параллельных вычислений в силу следующего набора причин:

Высокая стоимость параллельных систем;

Потери производительности для организации параллелизма;

Существование последовательных вычислений.

Рассмотрим законы, подтверждающие эти причины.

2.1 Закон Амдала

Итак, один из недостатков параллелизма заключается в невозможности полного распараллеливания ни одной из задач. Как правило, в каждой программе имеется фрагмент кода, который принципиально должен выполняться последовательно и только одним из процессоров. Это может быть часть программы, отвечающая за запуск задачи и распределение распараллеленного кода по процессорам, либо фрагмент программы, обеспечивающий операции ввода/вывода. Можно привести и другие примеры, но главное состоит в том, что о полном распараллеливании задачи говорить не приходится. Известные проблемы возникают и с той частью задачи, которая поддается распараллеливанию. Здесь идеальным был бы вариант, когда параллельные ветви программы постоянно загружали бы все процессоры системы, причем так, чтобы нагрузка на каждый процессор была одинакова. К сожалению, оба этих условия на практике трудно реализуемы. Таким образом, ориентируясь на параллельную ВС, необходимо четко сознавать, что добиться прямо пропорционального числу процессоров увеличения производительности не удастся, и, естественно, встает вопрос о том, на какое реальное ускорение можно рассчитывать. Ответ на этот вопрос в какой-то мере дает закон Амдала.

Джин Амдал (Gene Amdahl) - один из разработчиков всемирно известной Системы IBM 360, в своей работе, опубликованной в 1967 году, предложил формулу, отражающую зависимость ускорения вычислений, достигаемого на многопроцессорной ВС, от числа процессоров и соотношения между последовательной и параллельной частями программы. Показателем сокращения времени вычислений служит метрика «ускорение»: S=.

Проблема рассматривалась Амдалом в следующей постановке (рис.3). Прежде всего, объем решаемой задачи с изменением числа процессоров, участвующих в ее решении, остается неизменным. Программный код решаемой задачи состоит из двух частей: последовательной и распараллеливаемой. Обозначим долю операций, которые должны выполняться последовательно одним из процессоров, через f, где 0 <=f<= 1 (здесь доля понимается не по числу строк кода, а по числу реально выполняемых операций). Отсюда доля, приходящаяся на распараллеливаемую часть программы, составит 1-f. Крайние случаи в значениях соответствуют полностью параллельным (f=0) и полностью последовательным (f=1) программам. Распараллеливаемая часть программы равномерно распределяется по всем процессорам.

Рис.3. Постановка задачи в законе Амдала

С учетом приведенной f получаем формулу Амдала, выражающую ускорение, которое может быть достигнуто на системе из n процессоров:

S = = .

Формула выражает простую и обладающую большой общностью зависимость. Характер зависимости ускорения от числа процессоров и доли последовательной части программы показан на рис.4.

Рис. 4. Графики зависимости ускорения от; а -- доли последовательных вычислений; б -- числа процессоров

Если устремить число процессоров к бесконечности, то в пределе получаем:

Это означает, что если в программе 10% последовательных операций (то есть f= 0,1), то, сколько бы процессоров ни использовалось, убыстрения работы программы более, чем в десять раз никак ни получить, да и то, 10 -- это теоретическая верхняя оценка самого лучшего случая, когда никаких других отрицательных факторов нет. Следует отметить, что распараллеливание ведет к определенным издержкам, которых нет при последовательном выполнении программы. В качестве примера таких издержек можно упомянуть дополнительные операции, связанные с распределением программ по процессорам, обмен информацией между процессорами и т. д.

2.2 Закон Густафсона

Известную долю оптимизма в оценку, даваемую законом Амдала, вносят исследования, проведенные Джоном Густафсоном из NASA Ames Research. Решая на вычислительной системе из 1024 процессоров три больших задачи, для которых доля последовательного кода/лежала в пределах от 0,4 до 0,8%, он получил значения ускорения по сравнению с однопроцессорным вариантом, равные соответственно 1021,1020 и 1016. Согласно закону Амдала для данного числа процессоров и диапазона f, ускорение не должно было превысить величины порядка 201. Пытаясь объяснить это явление, Густафсон пришел к выводу, что причина кроется в исходной предпосылке, лежащей в основе закона Амдала: увеличение числа процессоров не сопровождается увеличением объема решаемой задачи. Реальное же поведение пользователей существенно отличается от такого представления. Обычно, получая в свое распоряжение более мощную систему, пользователь не стремится сократить время вычислений, а, сохраняя его практически неизменным, старается пропорционально мощности ВС увеличить объем решаемой задачи. И тут оказывается, что наращивание общего объема программы касается главным образом распараллеливаемой части программы. Это ведет к сокращению значения f.

Примером может служить решение дифференциального уравнения в частных производных. Если доля последовательного кода составляет 10% для 1000 узловых точек, то для 100 000 точек доля последовательного кода снизится до 0,1%. Сказанное иллюстрирует рис. 5, который отражает тот факт, что, оставаясь практически неизменной, последовательная часть в общем объеме увеличенной программы имеет уже меньший удельный вес.

Было отмечено, что в первом приближении объем работы, которая может быть произведена параллельно, возрастает линейно с ростом числа процессоров в системе. Для того чтобы оценить возможность ускорения вычислений, когда объем последних увеличивается с ростом количества процессоров в системе (при постоянстве общего времени вычислений), Густафсон рекомендует использовать выражение, предложенное Е. Барсисом (Е. Barsis):

Данное выражение известно как закон масштабируемого ускорения или закон Густафсона (иногда его называют также законом Густафсона-Барсиса), Закон Густафсона не противоречит закону Амдала. Различие состоит лишь в форме утилизации дополнительной мощности ВС, возникающей при увеличении числа процессоров.

Рис. 5. Постановка задачи в законе Густафсона

2.3 Закон Гроша

Очевидно, что повышение производительности в рамках одной архитектуры, как для процессора, так и для ВС, построенной на его основе, связано с повышением стоимости. Функциональную зависимость между этими показателями устанавливает так называемый закон Гроша:

V=kC2,

где V - производительность, T - время решения задачи, k - константа, зависящая от архитектуры, класса задач, метода решения, С - стоимость.

Формулировка закона самим Грошем такова:

Получение добавочной экономии есть только квадратный корень от увеличения в скорости -- то есть, чтоб сделать вычисления в 10 раз дешевле, вы должны сделать это в 100 раз быстрее.

Этот закон основан на статистических данных и известен с ранних этапов развития вычислительной техники. Согласно этому закону после разработки новой архитектуры и создания опытного образца экономически целесообразно вкладывать средства в улучшение ее реализации за счет совершенствования элементной базы, технологии изготовления и внесения некоторых непринципиальных изменений в структуру в целях повышения быстродействия. Из графика (рис.6) следует, что закон Гроша (кривая 1) справедлив в определенных границах (между точками a и b). Начиная с точки b эффект от усовершенствований снижается и требуется внесение принципиальных изменений, т.е. разработка новой архитектуры. На рис.6 приведена также кривая ценообразования 2. Разность абсцисс между точками этих кривых характеризует прибыль. Области I, II и III соответствуют младшим, средним, старшим моделям в рамках одной архитектуры. Наибольшую прибыль с учетом массовости производства обычно приносят средние модели. Приведенные кривые качественно характеризуют процесс развития архитектур.

Рис. 6. Зависимость производительности (V) от стоимости (С).

Сегодня актуальность закона Гроша является обсуждаемой. Пол Штрассман утверждал в 1997 году, этот закон Гроша в настоящее время «полностью опровергнут» и служит «напоминанием, что история экономики вычислительных систем изобиловала неподдерживаемыми и неправильными представлениями». Грош сам заявил, что закон являлся более полезным в 1960-х и 1970-х годах, чем сегодня. Он изначально предназначался, чтобы закон был «средством оценки цены на вычислительные услуги». Грош также пояснил, что сегодняшнее наличие изощренных способов исследования стоимости построения компьютерных систем, означает, что его закон имеет ограниченную применимость для современных ИТ-менеджеров.

2.4 Гипотеза Минского

Гипотеза М. Минского формулируется следующим образом: в -процессорной векторно-параллельной вычислительной системе или MIMD-вычислительной системе, в которой производительность каждого процессора равна единице, общая производительность растет как (см. рис. 7).

В первых параллельных вычислительных системах, когда количество процессоров было невелико, гипотеза Минского подтверждалась. В современных системах с большим количеством процессоров имеет место зависимость производительности от числа процессоров, показанная на рис. 7 пунктиром. Основные причины такой зависимости:

с ростом количества процессоров растут коммуникационные расходы (вследствие роста диаметра коммуникационной сети);

с ростом количества процессоров растет несбалансированность их загрузки.

Таким образом, если количество процессоров системы превышает величину , то целесообразно использовать мультипрограммный режим работы системы.

Рис. 7. Гипотеза Минского.

Заключение

Параллелизм на данный момент по-прежнему остается одной из передовых технологий осуществления высокопроизводительных вычислений. Выполнение нескольких операций одновременно при помощи определенного количества процессоров - удобная и практичная технология, позволяющая решать задачи гораздо быстрее. Возможность получения максимального ускорения ограничивается только числом имеющихся процессоров и количеством "независимых" частей в выполняемых вычислениях.

Тем не менее, в связи с описанными выше и многими другими недостатками, технология параллелизма пока не получила столь широкого распространения, как это уже многократно предсказывалось многими исследователями. На данный момент проблема высокой стоимости высокопроизводительных систем почти аннулирована благодаря технологии построения параллельных вычислительных комплексов из типовых конструктивных элементов. Однако сложность проектирования численных методов под такие системы и обобщения традиционной технологии решения задач на ЭВМ по-прежнему затрудняет активное использование параллелизма.

Подводя итог, можно сказать, что параллельные вычисления являются перспективной (и привлекательной) областью применения вычислительной техники и представляют собой сложную научно-техническую проблему. Тем самым знание современных тенденций развития ЭВМ и аппаратных средств для достижения параллелизма, умение разрабатывать модели, методы и программы параллельного решения задач обработки данных следует отнести к числу важных квалификационных характеристик современного специалиста по прикладной математике, информатике и вычислительной технике.

Список литературы

1. Б.Я.Цилькер, С.А. Орлов «Организация ЭВМ и систем».

2. В.П.Гергель, Р.Я.Стронгин «Основы параллельных вычислений для многопроцессорных вычислительных систем».

3. В.Ф.Мелехин, Е.Г.Павловский «Вычислительные машины, системы и сети».

4. В.П.Гергель «Высокопроизводительные вычисления для многоядерных многопроцессорных систем».

Размещено на Allbest.ru

...

Подобные документы

  • Основные модели вычислений. Оценки эффективности параллельных алгоритмов, их коммуникационная трудоемкость. Последовательный алгоритм, каскадная схема и способы ее улучшения. Модифицированная каскадная схема. Передача данных, классификация операций.

    презентация [1,3 M], добавлен 10.02.2014

  • Описание кластерных систем и характеристика библиотек параллелизма. Аналоги PVM. Организация параллельных вычислений. Описание оборудования и программного обеспечения кластера. Гипотеза Гольдбаха. Процесс компиляции собственной программы для работы с PVM.

    курсовая работа [847,2 K], добавлен 05.12.2014

  • Понятие вычислительных систем, их классификация по различным признакам. Модели параллельных вычислений PGAS и APGAS. Разработка программного продукта для анализа информационных обменов в параллельных программах на языке IBM X10. Расчёт его себестоимости.

    дипломная работа [1,6 M], добавлен 10.06.2013

  • Сравнение центрального и графического процессора компьютера в параллельных расчётах. Пример применения технологии CUDA для неграфических вычислений. Вычисление интеграла и сложение векторов. Технические характеристики ПК, применяемого для вычислений.

    курсовая работа [735,9 K], добавлен 12.07.2015

  • Математическая основа параллельных вычислений. Свойства Parallel Computing Toolbox. Разработка параллельных приложений в Matlab. Примеры программирования параллельных задач. Вычисление определенного интеграла. Последовательное и параллельное перемножение.

    курсовая работа [1,1 M], добавлен 15.12.2010

  • Алгоритм логарифмического сдваивания. Средняя степень параллелизма. Характеристики векторных компьютеров. Модель ускорения для параллельной вычислительной системы. Суммирование методом рекурсивного удвоения. Условия выполнения несогласованного алгоритма.

    лекция [183,2 K], добавлен 22.10.2014

  • Знакомство с историей развития многопроцессорных комплексов и параллельных вычислений. Персональные компьютеры как распространенные однопроцессорные системы на платформе Intel или AMD, работающие под управлением однопользовательских операционных систем.

    презентация [1,1 M], добавлен 22.02.2016

  • Пути достижения параллелизма вычислений. Понятие и разновидности, а также сферы и особенности использования суперкомпьютеров. Параллельные вычисления как процессы решения задач, в которых могут выполняться одновременно несколько вычислительных операций.

    презентация [8,3 M], добавлен 11.10.2014

  • Классификация алгоритмов маршрутизации. Методы передачи данных. Характеристики коммуникационной составляющей длительности выполнения параллельного алгоритма. Преимущества и недостатки CTR. Оценки трудоемкости для различных топологий и кластеров.

    презентация [875,8 K], добавлен 10.02.2014

  • Пакетный метод как основной способ выполнения коммуникационных операций, его содержание и предъявляемые требования. Оценка трудоемкости операции передачи данных между двумя узлами кластера. Этапы разработки параллельных алгоритмов (распараллеливания).

    презентация [318,1 K], добавлен 10.02.2014

  • Особенности параллельного программирования высокопроизводительных многопроцессорных или многомашинных вычислительных комплексов. Основные положения и понятия стандартов MPI и OpenMP. Средства компиляции параллельных операторов для языков C и Fortran.

    лекция [177,9 K], добавлен 22.10.2014

  • История и факторы развития облачных вычислений. Роль виртуализации в развитии облачных технологий. Модели обслуживания и принципы работы облачных сервисов. Преимущества облака для Интернет-стартапов. Применение технологии облачных вычислений в бизнесе.

    реферат [56,6 K], добавлен 18.03.2015

  • Показатели эффективности параллельного алгоритма: ускорение, эффективность использования процессоров, стоимость вычислений. Оценка максимально достижимого параллелизма. Закон Амдала, Закон Густафсона. Анализ масштабируемости параллельного алгоритма.

    презентация [493,0 K], добавлен 11.10.2014

  • Главный недостаток систем с общей шиной. Использование матричного коммутатора в схемах. Соединения между процессорами с системах с распределенной памятью. Схема соединений процессоров в компьютере BBN Butterfly. Топологии типа гиперкуб. Архитектура NUMA.

    лекция [192,3 K], добавлен 22.10.2014

  • Сущность и задачи системы грид их практическое применение. Основные идеи, заложенные в концепции грид-вычислений. Уровни архитектуры грид, их характеристика. Технология облачных вычислений. Промежуточное программное обеспечение в распределенных системах.

    контрольная работа [736,9 K], добавлен 06.01.2013

  • Параллельная машина как процессоров, памяти и некоторые методы коммуникации между ними, сферы применения. Рассмотрение особенностей организации параллельности вычислений. Анализ типовых схем коммуникации в многопроцессорных вычислительных системах.

    курсовая работа [669,3 K], добавлен 07.09.2015

  • Анализ рынка облачных вычислений и средств для обеспечения безопасности в них. Распространение облачных вычислений, негарантированный уровень безопасности обрабатываемой информации как их основная проблема. Расследование инцидентов и криминалистика.

    курсовая работа [4,3 M], добавлен 26.02.2015

  • Классификация Флинна как наиболее ранняя и известная классификация архитектур вычислительных систем, ее структура и содержание, признаки. Общая характеристика используемых классов. Описание и значение других распространенных методов классификации.

    лекция [173,1 K], добавлен 22.10.2014

  • Точность вычислений, классификация погрешностей. Оценка апостериорной погрешности, численное дифференцирование. Численное решение систем линейных уравнений. Аппроксимация функций методом наименьших квадратов. Решение нелинейных уравнений с неизвестным.

    методичка [611,8 K], добавлен 10.10.2010

  • Области применения быстрых вычислений. Проблемы эффективности последовательных и параллельных программ. Отображение циклов с условными операторами на асинхронные архитектуры. Рассмотрение исследовательских университетских распараллеливающих систем.

    презентация [833,3 K], добавлен 07.08.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.