Реклама:

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

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

В результате, чтобы иметь возможность решать более сложные задачи, разработчики обратились к компьютерам параллельного действия (далее - параллельные компьютеры). Невозможно построить компьютер с одним процессором и временем цикла в 0,001 не, но зато можно построить компьютер с 1000 процессорами, время цикла каждого из которых составляет 1 не. И хотя быстродействия каждого процессора во втором случае очевидно мало, теоретически мы должны получить требуемую производительность.

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

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

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

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

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

Глава 8. Параллельные компьютерные архитектуры

Рис. 8.1. Внутрипроцессорный параллелизм (а); сопроцессор (б); мультипроцессор (е); мультикомпьютер (г); слабо связанная распределенная вычислительная система (д)

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

Вопросы и задания7 || Оглавление || Внутрипроцессорный параллелизм