Состояние и перспективы развития средств вычислительной техники.

Есть много путей убыстрения процесса обработки информации. Рассмотрим основные.

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

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

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

Проиллюстрируем эту процедуру на простом примере. Пусть необходимо вычислить сумму

Состояние и перспективы развития средств вычислительной техники. - student2.ru

для заданных значений аргумента x1, x2, ..., xk.

Хорошо видно, что сначала надо вычислить значения всех функций fi, а уж потом их сложить. Вычисление функций fi можно делать параллельно на n процессорах, на что затратится время, необходимое для вычисления самой трудоемкой функции fi (i=1,...,n), и потом сложить n чисел. На рис.1 показана структура такой параллельной вычислительной системы из n процессоров Пр.1, Пр2, ..., Прn, на каждый из которых подается программа вычисления "своей" функции fj (она обозначена P(fj)) и значение аргумента xi. На выходе j-ого процессора Прj таким способом образуется значение fj(xi). Все выходы этих процессоров суммируются на n+1-ом процессоре Пр(n+1). Его программа P(å) и образует искомую функцию.

Состояние и перспективы развития средств вычислительной техники. - student2.ru

Рис. 8.7. Реализация параллельного вычисления с помощью нескольких процессоров.

Таким образом, n+1 процессор образовали вычислительную систему, которая вычисляет функцию j(xj) за время

tmax+(n-1)tå ,

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

Состояние и перспективы развития средств вычислительной техники. - student2.ru

где tj - время вычисления j-й функции fj, т.е. значительно больше. Выигрыш от параллельных вычислений, как видно, достаточно велик.

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

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

Состояние и перспективы развития средств вычислительной техники. - student2.ru

Рис.8.8.Схема матричного процессора

В такой ЭВМ единое устройство управления так командует процессорами, что все они в одно и то же время выполняют одну и ту же команду, каждый над своими данными, поступающими из своего запоминающего устройства. Между соседними процессорами предусмотрен обмен данными. Основной принцип "команда одна - данных много" отражен в названии класса этих ЭВМ (SIMD - single instruction, multy datas).

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

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

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

Значительный вклад в повышение производительности ЭВМ внесло использование принципа конвейерной обработки. Конвейер замечателен разбиением всего процесса изготовления (например сборки) на отдельные элементарные операции, выполнение которых возлагается на технологические участки, мимо которых движется конвейер, чем меньше элементарная операция, тем производительнее конвейер. Действительно, готовая продукция будет сходить с конвейера с интервалом, равным времени одной сборки, т.е. за время одной элементарной технологической операции плюс время передвижения от одного участка к другому. Именно поэтому элементарные операции должны быть очень простыми, а скорость движения конвейера – высокой, число рабочих мест при этом увеличивается вместе с длиной конвейера.

Состояние и перспективы развития средств вычислительной техники. - student2.ru

Рис. 8.9.Программа, представленная цепочкой подпрограмм.

А теперь применим идею конвейера к решению задач, программа которых должна многократно повторяться . Разобьем всю программу А на одинаковые по времени реализации части - подпрограммы (элементарные операции) А1, А2, ..., Аn, последовательное выполнение которых решает поставленную задачу. Теперь N процессов запрограммируем на решение этих подпрограмм и расположим их в цепочку так, что результат работы k-ого процессора будет исходными данными k+1-го (рис.8.9).

Пусть x1, x2, ..., xk исходные данные k задач, которые должны быть решены программой А k-кратным ее повторением, а R1,..., Rk - результаты расчетов этих k задач, которые необходимо получить. Очевидно, что подавать на вход такой цепочки процессоров исходные данные x1, x2, ..., xk следует не дожидаясь, пока будет получен конечный результат, а через время, равное T/N, где T - общее время решения одной задачи на одном процессоре. В этом случае, в любой момент времени каждый процессор будет решать свою задачу, т.е. одновременно будет решаться N задач (одна задача, но N исходных данных).

При такой организации, время решения k задач равно

(k+N)T/N.

Это значительно меньше по сравнению с производительностью одного процессора, который затратит на это Tk, т.е. примерно в N раз меньше (для k >> N). Таким образом, чем больше процессов образуют "конвейер" обработки информации, тем быстрее обрабатывается информация.

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

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

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

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

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

Как видно, преимущества вычислительных систем связаны в основном с тем, что используются следующие адаптивные приемы.

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

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

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

Методы адаптации вычислительных систем не ограничиваются вышеперечисленными.

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

Что же дальше? Это - адаптация, т.е. приспособление машины к решаемой задаче, к сложившейся ситуации, к новым целям, поставленным перед ней.

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

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

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

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

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

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


Наши рекомендации