А.Н. Томилин - Вычислительные системы (2006), страница 13
Описание файла
PDF-файл из архива "А.Н. Томилин - Вычислительные системы (2006)", который расположен в категории "". Всё это находится в предмете "вычислительные сети и системы" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 13 страницы из PDF
Важный момент: у вас имеется несколько дисков, вот у вас массив, который нужно прочитать, как-то так записан на дорожку:ОПМДТак вот, какую взять? Второй поближе, но если я возьму, первый прокрутится и потому меня будет больше. Поэтому нужно смотреть, и повиноваться алгоритмам, разработаннымво многих кандидатских и докторских диссертациях. Это очень сильные алгоритмы, чтобысуммарный простой этих каналов был наименьшим. Такой процессор был у Cray.
У электроники такого процессора не было, но зато был процессор управления массовой памятью. Чтов нём сидело? В нём сидели программы реализации методов доступа. Что это такое? Вотсмотрите: вот у вас имеется матрица 1000 на 1000. Она сидела где-то на диске, вы её перекачали в массовую память, и вот у вас в массовой памяти матрица 1000 на 1000 (для современных задач вполне естественно — сколько-то мегабайт, подумаешь, мелочи какие). Вот вамнужно взять диагональ — всего 1000 элементов. Нормально, вы её перегоняете в ОП, и тутпроцессор спокойненько возьмёт эту тысячу. А что, если перегнать только эту тысячу? Т.е.вы задаёте обмен операционной системе по этому каналу.
Т.е. фактически эта программа работает в процессе обмена, подсовывая адреса массовой памяти. Итак, вот массовая память.Итак, мы закончили вопросы организации векторно-конвейерных машин двумя рассмотренными нами уровнями параллелизма: параллелизм работы функциональныхустройств и конвейер исполнения операций в каждом из этих устройств. Визитнойкарточкой этих машин и до сих пор является Cray. Мы рассмотрели следующий этап — этоуже работа многопроцессорных машин, когда несколько процессоров со всем содержимым,которое мы рассматривали, подключается к общей памяти. Естественно, память расслоена,но уже она нагружается несколькими обращениями от каждого из процессоров (закомандами, за считыванием операндов).
Ну и, вообще говоря, обмены с дисками — это также обращение к памяти. Большая периферия у Cray’я отсутствовала, она подключалась черезвспомогательные машины. Напоминаю, что у первого Cray’я, который, кстати, былпоставлен не в Америке, а в Великобритании (в метеорологическомцентре), сопровождалось37в Великобритании (в метеорологическом центре), сопровождалось такой внешней машиной,организующей передачу заданий, подготовку заданий, хранение массивов данных. Это быламалая машина Eclipse.
Потом постепенно внешние машины стали существенно более мощными, и уже застабилизировался тот комплекс Cray (естественно, многопроцессорный) наподдержке внешних машин (достаточно производительных) Control Data Corporation серии7000, где в этой фирме (CDC) остались ученики Крэя. Уже пройденный был этап Cyber’а.Т.е. вообще говоря, суперЭВМ (машины и комплексы) все имели поддерживающиевнешние машины, а то и несколько, которые, по сути, помогали вычислителю, беря на себяfront-end заботы — подготовку заданий, окончательную обработку результатов, вывод наустройства вывода. Эти многомашинные комплексы организовались совершенно естественным образом с выделением центрального одно- или многопроцессорного вычислительногозвена и с выделением слоя поддерживающих средств.Рассматривая машину Cray многопроцессорную с общей памятью, мы отметили, чтоаналогичным образом машинам с общей памятью были организованы машины Эльбрус:Эльбрус 2 — до 10 процессоров работали на общей памяти с подключением с помощьюкоммутатора.
К этому же коммутатору подключались те самые внешние машины, которые вЭльбрус 2 назывались ПВВ (процессоры ввода-вывода), где своя операционная система заведовала работой устройств и передачей данных. Эта операционная система контактировалас операционной системой мультипроцессора. А могла бы контактировать с многими операционными системами, если бы каждый процессор управлялся своей операционной системой,что вполне было бы возможно.ILLIAC VIИтак, вот мы рассмотрели два примера SMP (symmetric multiprocessor) — Cray и Эльбрус, да ещё вот увидели, что они поддерживаются внешними машинами, образуя вместемногомашинный комплекс. И к тому же мы отметили, что вот эти SMP (когда у нас на общей памяти, к ней обращаются какое-то количество процессоров с одинаковым временемобращения), и ясно, что, несмотря на довольно большой интерливинг, очень большое количество процессоров подключить не реально.ОППр-рПр-рПр-рПоэтому такие комплексы и были 4, 8, 16 (в Эльбрусе — 10).
А что делать, чтобы мывсё-таки могли распараллелить нашу задачу на большее число ветвей, чем вот. Ясно, для чего параллельно работающие процессоры — чтобы на каждом шла своя ветвь общая, какая-тосвоя задача. Чтобы либо больше ветвей, либо больше задач решать на этой общей памяти.Надо было что-то делать.Надо сказать, что уже существенно до появления машины Cray Y-MP, X-MP, Эльбрусещё в 1971 году (помните, однопроцессорный Эльбрус появился в 1976 году) появился комплекс, который назывался ILLIAC IV. Очень интересная судьба у этого комплекса. Иллинойский университет, вообще говоря. Видите, университеты в Америки активно участвовали вразработки очень многих средств вычислительной техники. И, естественно, создавали программное обеспечение. Люди активно участвовали и в разработке архитектуры таких машинвместе с фирмами.
Поэтому роль, конечно, очень большая, и много на это средств выделялось — это очень существенный момент.В 1971 году на навесных деталях была разработана вот такая система: было разработано 64 вычислительных узла. Объединены они были в топологию «решётка».
Вычислительный узел представлял собой арифметико-логическое устройство и оперативную память. Каквидите, здесь нет одного компонента — полностью организованного нормального процессора (нет устройства управления). Было единственное устройство управления (УУ), которое,38получая из некоторого буфера команд (БК) команду, транслировало её одновременно на всеарифметико-логические устройства. Существовала некая маска, которая показывала, на какой узел нужно передать команду, на какой — не надо. Команды все одновременно выполнялись. Что могла обрабатывать такая команда? Например, сложить третью ячейку с пятой ирезультат переслать в седьмую ячейку своей памяти.
И вот все они выполнялись одновременно. Это получились многоалушные узлы, где узлу всегда привязывается сущность памяти (узел всегда имеет память).АЛУБКАЛУОПОП...УУАЛУвычислительныйузелОП...АЛУBurroughs5xxxОП...Вычислительные узлы можно рассматривать и как машины, поскольку здесь есть устройство управления, есть вычислительное звено — уровень вычислений, и уровень памяти.Откуда ж брались команды? Очень просто: стояла машина Burroughs 5000 с чем-то, и этамашина была той самой внешней машиной вот этого фактически многомашинного комплекса. Но нельзя так называть — «многомашинный»: здесь не было своей операционной системы. Помните, мы говорили, что многомашинный это тогда, когда у каждого элемента комплекса есть своя операционная система. Тем не менее, удивительная машина была —Burroughs, — на которой и готовились задачи, программа передавалась в буфер команд (БК),ну а дальше… Естественно, был канал данных в ОП — забирались данные.64 было вот таких вычислительных узла — некий квадрат.
Хотели сделать 4 квадратапо 64, но сил не хватило. Слава Богу, что сделали это. Машина просуществовала год или 2,была очень дорога в эксплуатации. Машина позволяла развить производительность порядка300 MFlops (Cray только при 3-х конвейерах приближается к этому), но это регулярных вычислений.Когда у вас есть какая-то область, которую вы покрываете сеткой (при решении дифференциальных уравнений), то в каждом узле регулярной сетки (я не беру границу) вы выполняете однотипные действия — вот это то самое.И понятно, что здесь основная вычислительная нагрузка и лежит, и какие-то начальныевычисления, последняя часть, они, конечно, не могли задействовать все узлы. Задействуютсятолько некоторые из них, и естественно, производительность была не большой.
А вот когдашло регулярное вычисление — производительность существенно возрастала. Задачи решались с очень высокой производительностью. Какие задачи? И твёрдое тело здесь можно исследовать, и течение воздушное и жидкости и т.д. — самые насущные задачи, которые нужно было решать во все времена.Так вот, просуществовала эта система не больше года, но в учебниках находится всюду.Есть один феномен, который короткое время просуществовал, большого эффекта на разви39тие не дал, но вот в любом учебнике эта система есть и долго ещё будет существовать.
Кудаот неё деться, потому что действительно прародитель такой многоэлементной системы, вданном случае — многоалушных узлов. Вот такая была система.И вот если смотреть на ту классификацию, которую мы с вами говорили, то увидим:ОКОДОКМДМКОДCray (если не братьеговекторнуючасть), PC, WorkStation, MainframeILLIAC IV, векторная часть Cray, ПС2000 (по образцуILLIAC IV)∅МКМДМВКSMPММВКMPPNUMAМногопроцессорные вычислительные комплексыNUMAТеперь мы нарисуем несколько другой комплекс. Берём вычислительный узел, толькотеперь он уже полноправный — АЛУ, УУ, ОП. И вот у вас есть некая магистраль, связывающая памяти, да и арифметико-логические устройства сюда тоже могут обращаться.Выч.
узелПроцессорАЛУАЛУАЛУУУУУУУОПОП...ОПВот, вы работаете со своей памятью. Если их много на этой магистрали, то обращениек чужой ОП возможно, но несколько дольше. Но вы можете так попросить операционнуюсистему, чтобы наиболее часто используемые данные были расположены поближе (если, конечно, получится). Может выполняться много вычислительных задач, и это может оказатьсяне так уж просто выполнимым. И всё-таки тогда у вас будет достаточно эффективно выполняться работа. А данные, к которым вы редко будете обращаться, пусть будут где-то в отдалении. У вас будут редкие обращения, это будет дольше, естественно, при числе этих узлов(процессоров) существенно превышающем, могут обращаться ко многим узлам.