2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother), страница 9
Описание файла
PDF-файл из архива "2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother)", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 9 страницы из PDF
В этом случае на предварительное занесение данных в регистры все равнотребуется некоторое дополнительное время. Поскольку нам необходимо использоватьвекторные регистры перед выполнением операций, то требуемые для этого операциичтения/записи будут неизбежно снижать общую производительность. Довольно частовлияние данного фактора можно заметно ослабить, если повторно используемые вектораодин раз загрузить в регистры, выполнить построенные на их основе выражения, а ужезатем перейти к оставшейся части программы. Рассмотрим следующий фрагмент:Do j=1,120Do i=1,nDP(i) = DP(i) + s*P(i,j-1) + t*P(i,j)End DoEnd DoНа каждой итерации по j для выполнения векторной операции требуются три входныхвектора DP(i), P(i,j-1), P(i,j) и один выходной - DP(i), следовательно за время работы всегофрагмента будет выполнено 120*3=360 операций чтения векторов и 120 операций записи.Если явно выписать каждые две последовательные итерации цикла по j и преобразоватьфрагмент к виду:Do j=1,120,2Do i=1,nDP(i) = DP(i)+s*P(i,j-1)+t*P(i,j)+s*P(i,j)+t*P(i,j+1)End DoEnd Doто на каждой из 60-ти итераций внешнего цикла потребуется четыре входных вектораDP(i), P(i,j-1), P(i,j), P(i,j+1) и опять же один выходной.
Суммарно, для нового вариантабудет выполнено 60*4=240 операций чтения и 60 операций записи. Преобразованиеподобного рода носит название "раскрутки" и имеет максимальный эффект в том случае,когда на соседних итерациях цикла используются одни и те же данные.26. Причины уменьшения производительности компьютера CRAY C90:ограниченный набор векторных регистров, несбалансированность в использованииФУ, отсутствие устройства деления, перезагрузка буферов команд.Теоретически, одновременно с увеличением глубины раскрутки растет ипроизводительность, приближаясь в пределе к некоторому значению.
Однако на практикемаксимальный эффект достигается где-то на первых шагах, а затем производительностьлибо остается примерно одинаковой, либо падает. Основная причина данногонесоответствия теории и практики заключается в том, что компьютеры CRAY Y-MP C90имеют сильно ограниченный набор векторных регистров: 8 регистров по 128 слова вкаждом. Как правило, любая раскрутка требует подкачки дополнительных векторов, а,следовательно, и дополнительных регистров.
Таблица 4 содержит данные попроизводительности CRAY Y-MP C90 на обсуждаемом выше фрагменте в зависимости отдлины векторов и глубины раскрутки.глубина производительность на векторах израскрутки 64 элементов128 элементов12800 элементов1464.4612.9749.02591.4731.6730.13639.3780.7752.54675.3807.7786.8Табл.4 Зависимость производительности компьютера CRAY Y-MP C90 отглубины раскрутки и длины векторов.Теперь вспомним, что значение пиковой производительности вычислялось приусловии одновременной работы всех функциональных устройств.
Значит, если некоторыйалгоритм выполняет одинаковое число операций сложения и умножения, но все сложениявыполняются сначала и лишь затем операции умножения, то в каждый момент времени вкомпьютере будут задействованы только устройства одного типа. Присутствующаянесбалансированность в использовании функциональных устройств являетсясерьезным фактором, сильно снижающим реальную производительность компьютера соответствующие данные можно найти в таблице 5.В наборе функциональных устройств нет устройства деления. Для выполненияданной операции используется устройство обратной аппроксимации и устройствоумножения.
Отсюда сразу следует, что, во-первых, производительность фрагмента втерминах операций деления будет очень низкой и, во-вторых, использование делениявместе с операцией сложения немного выгоднее, чем с умножением тк заняты разные ФУ.Конкретные значения производительности показаны в таблице 5.длина производительность на операциивектора ai=bi+ci ai=bi*ci ai=bi/ci ai=s/bi+t ai=s/bi*t1035.541.924.845.746.1100202.9198.088.4197.4166.51000343.8341.2117.2283.8215.912800373.1 376.8 120.0 297.0222.5Табл.5 Производительность CRAY Y-MP C90 на операциях одного типа иоперациях с делением.Если структура программы такова, что в ней либо происходит частое обращение кразличным небольшим подпрограммам и функциям, либо структура управления оченьзапутана и построена на основе большого числа переходов, то потребуется частаяперезагрузка буферов команд, а значит, возникнут дополнительные накладные расходы.Наилучший результат достигается в том случае, если весь фрагмент кода уместился водном буфере команд.
Незначительные потери производительности будут у фрагментов,расположенных в нескольких буферах. Если же перезагрузка частая, т.е. фрагмент илипрограмма обладают малой локальностью вычислений, то производительность можетизменяться в очень широких пределах в зависимости от способа организации каждойконкретной программы.27. Архитектура компьютера NEC Earth Simulator.Японский компьютер Earth Simulator имеет столь впечатляющие параметры, чтоего создание стало возможным только в результате выполнения проекта действительнообщенационального масштаба. Производство компьютера было закончено в феврале 2002года, после чего он был установлен в Японском центре морских наук и технологий (JapanMarine Science and Technology Center). Сам компьютер и все его технологическоеокружение (системы электропитания, кондиционирования, освещения, сейсмозащиты ит.п.) занимают здание размером 50х65х17 м.Earth Simulator содержит 640 процессорных узлов, соединенных между собой черезвысокоскоростной переключатель.
В состав узла входят 8 векторных арифметическихпроцессоров, работающих над общей для каждого узла оперативной памятью,коммуникационный процессор и процессор для операций ввода/вывода. Оперативнаяпамять каждого узла разделена на 2048 банков и имеет объем 16 Гбайт. Пиковаяпроизводительность одного арифметического процессора равна 8 Гфлопс, поэтомупиковая производительность всего компьютера, объединяющего 640*8=5120 процессоров,равна 40 Тфлопс.
С лета 2002 года до октября 2003 г. Earth Simulator занимал первое местов списке Top500 самых мощных компьютеров мира, показав производительность 35,86Тфлопс на тесте Linpack (89,6% от пика).Скорость двунаправленной передачи по каждому каналу, соединяющемупроцессорные узлы с переключателем, равна 12.3 Гбайт/с.
Суммарная длина кабелей,соединяющих процессорные узлы с переключателем, составляет 2400 км.Каждый арифметический процессор состоит из скалярного и векторного устройств,а также модуля доступа к общей памяти. Процессор работает на частоте 500 МГц, нонекоторые его компоненты поддерживают работу на частоте 1 ГГц.
Скалярное устройствоимеет суперскалярную архитектуру, объединяет кэш-память команд и данных по 64 Кбайткаждая и 128 скалярных регистров общего назначения. Каждое векторное устройствоимеет 8 наборов, состоящих из 72 векторных регистров (по 256 элементов каждый) и 6конвейерных устройств: сложение, умножение, деление, для логических операций,операций маскирования и чтения/записи. Устройства одного и того же типа из разныхнаборов одновременно обрабатывают одну и ту же векторную команду, в то время какустройства различных типов даже в рамках одного набора могут работать одновременно инезависимо друг от друга.Система архивирования компьютера Earth Simulator включает дисковые массивына 250 Тбайт и ленточную библиотеку StorageTek 9310 на 1.5 Пбайт (1 Петабайт = 10^15байт).Архитектура компьютера объединяет многие известные принципы построениявысокопроизводительных систем.
В целом, Earth Simulator является массивнопараллельным компьютером с распределенной памятью. Вместе с тем, каждыйпроцессорный узел построен на принципах SMP-архитектуры, причем основа каждогопроцессора - векторно-конвейерная обработка.Основные технологии параллельного программирования, используемые накомпьютере Earth Simulator: Message Passing Interface (MPI), High Performance Fortran,OpenMP и векторизация циклов компилятором.28. Параллелизм на уровне машинных команд, суперскалярные, VLIW и EPICархитектуры.Исключительно интересной оказалась идея воспользоваться скрытым отпользователя параллелизмом — параллелизмом на уровне машинных команд (InstructionLevel Parallelism).
Выгод — масса, и среди главных стоит назвать отсутствие упользователя необходимости в специальном параллельном программировании, и то, чтопроблемы с переносимостью, вообще говоря, остаются на уровне общих проблемпереносимости программ в классе последовательных машин.Существует два основных подхода к построению архитектуры процессоров,использующих параллелизм на уровне машинных команд. В обоих случаяхпредполагается, что процессор содержит несколько функциональных устройств, которыемогут работать независимо друг от друга. Устройства могут быть одинаковыми, могутбыть разными — в данном случае это неважно.Суперскалярные процессоры не предполагают, что программа в терминах машинных команд будет включать в себя какую-либо информацию о содержащемся в нейпараллелизме.
Задача обнаружения параллелизма в машинном коде возлагается нааппаратуру, она же и строит соответствующую последовательность исполнения команд. Вэтом смысле код для суперскалярных процессоров не отражает точно ни природуаппаратного обеспечения, на котором он будет реализован, ни точного временногопорядка, в котором будут выполняться команды.VLIW-процессоры (Very Large Instruction Word) работают практически поправилам фоннеймановского компьютера. Разница лишь в том, что команда, выдаваемаяпроцессору на каждом цикле, определяет не одну операцию, а сразу несколько.