Параллельные системы
Параллельная обработка данных на ЭВМ
Оксфордский толковый словарь по вычислительной технике, изданный в 1986 году, сообщает, что суперкомпьютер - это очень мощная ЭВМ с производительностью свыше 10 MFLOPS. Сегодня этот результат перекрывают уже не только рабочие станции, но, по пиковой производительности, и ПК. В начале 1990-х годов границу проводили уже около отметки в 300 MFLOPS. В 2001 году специалисты двух ведущих "суперкомпьютерных" стран, США и Японии, договорились о подъеме планки до 5 GFLOPS.
Таким образом, основные признаки, характеризующие супер-ЭВМ, следующие:
- самая высокая производительность;
- самый современный технологический уровень (например, GaAs-технология);
- специфические архитектурные решения, направленные на повышение быстродействия (например, наличие операций над векторами);
- цена, обычно свыше 1-2 млн. долларов.
Какой из факторов является решающим в достижении современных фантастических показателей производительности? Обратимся к историческим фактам. На одном из самых первых компьютеров EDSAC (1949 г.), имевшем время такта 2 мкс, можно было выполнить в среднем 100 арифметических операций в секунду. А пиковая производительность суперкомпьютера CRAY C90 с временем такта порядка 4 нс - около 1 миллиарда арифметических операций в секунду. Таким образом, производительность компьютеров за этот период возросла примерно в 10 миллионов раз, а время такта уменьшилось лишь в 500 раз. Следовательно, увеличение производительности происходило и за счет других факторов, важнейшим среди которых является использование новых архитектурных решений, в частности - принципа параллельной обработки данных.
Параллельная обработка данных имеет две разновидности: конвейерность и параллельность.
Идея конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем так, чтобы каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Выигрыш в скорости обработки данных получается за счет совмещения прежде разнесенных во времени операций.
Параллельная обработка данных предполагает наличие нескольких функционально независимых устройств.
Закон Амдала
S<= 1/ [f + (1-f)/p]
где S - ускорение, f - доля операций, которые нужно выполнить последовательно, p - число процессоров.
Следствие из закона Амдала: для того чтобы ускорить выполнение программы в q раз, необходимо ускорить не менее чем в q раз и не менее чем (1-1/q) -ую часть программы. Следовательно, если нужно ускорить программу в 100 раз по сравнению с ее последовательным вариантом, то необходимо получить не меньшее ускорение на не менее чем 99,99 % кода!
История появления параллелизма в архитектуре ЭВМ
Все современные процессоры используют тот или иной вид параллельной обработки. Изначально эти идеи внедрялись в самых передовых, а потому единичных компьютерах своего времени:
- 1953 г. - IBM 701, 1955 г. - IBM 704: разрядно параллельная память и арифметика, АЛУ с плавающей точкой.
- 1958 г. - IBM 709: независимые процессоры ввода/вывода (т.е. контроллеры ВУ).
- 1961 г. - IBM STRETCH: опережающий просмотр вперед, расслоение памяти на 2 банка.
- 1963 г. - ATLAS: реализована конвейерная обработка данных - конвейер команд.
- 1964 г. - CDC 6600: независимые функциональные устройства.
- 1969 г. - CDC 7600: конвейерные независимые функциональные устройства (8 конвейеров).
- 1974 г. - ALLIAC: матричные процессоры (УУ + матрица из 64 процессоров).
- 1976 г. - CRAY1: векторно-конвейерные процессоры. Введение векторных команд, работающих с целыми массивами независимых данных.