Диссертация (Исследование, методы разработки и создание многопроцессорных модулей доверенных вычислительных комплексов), страница 8
Описание файла
Файл "Диссертация" внутри архива находится в папке "Исследование, методы разработки и создание многопроцессорных модулей доверенных вычислительных комплексов". PDF-файл из архива "Исследование, методы разработки и создание многопроцессорных модулей доверенных вычислительных комплексов", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "диссертации и авторефераты" в общих файлах, а ещё этот архив представляет собой докторскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени доктора технических наук.
Просмотр PDF-файла онлайн
Текст 8 страницы из PDF
ускоряются вычисленияна участках, не поддающихся другим видам распараллеливания.Быстрыйростобъемаисложностипрограммногообеспеченияхарактеризуется снижением его общей надежности из-за большого количестваошибок и уязвимостей. Например, размер дистрибутива Linux Debian c 2000 г.(Potato) по 2013 г. (Wheezy) вырос более чем в 9 раз по числу входящих в негопакетов и почти в 9 раз по размеру исходного кода, а надежность находится науровне1-5ошибокна1тыс.строккода.Последнеедесятилетиехарактеризуется стремительным ростом киберпреступности и кибератак, чтостало прямым следствием ошибок в программах, а также использованиемсуществующих аппаратных архитектур, обладающих низким семантическимуровнем и не имеющих средств повышения надежности программ. Таким38образом, вопросы безопасности и надежности программного обеспечениявыходят на первый план среди путей дальнейшего развития информационныхтехнологий.Решение всех перечисленных проблем возможно на базе технологийуниверсальныхпроцессоровсархитектурой«Эльбрус»[13-14].Ониобеспечивают высокую производительность процессорного ядра за счетпараллельного исполнения операций при экономном энергопотреблении,обеспечивают полную и эффективную двоичную совместимость с самойраспространенной в мире аппаратной платформой Intel x86, x86-64, а такжепредоставляют эффективные средства надежного программирования на базеподдерживаемыхаппаратнымобразомзащищенныхвычислений[15].Благодаря этому процессоры с архитектурой «Эльбрус» рассчитаны наширокий спектр применений с возможностью совершенствования технологий вих основе.1.2.2 Управление параллелизмом операцийВажнейшейособенностьюархитектуры«Эльбрус»являетсяявноеуказание процессорному ядру параллельно исполняемых операций, при этоманализ независимости и их планирование выполняет компилятор.
Этопозволяет отказаться от сложной и энергоемкой аппаратуры обеспечениявнеочередного исполнения команд, используемой во всех современныхуниверсальных процессорах, и делает осмысленным расширение паркаисполнительных устройств и повышение предельной производительности натакт до уровней, превосходящих возможности конкурирующих решений.В первых четырех поколениях процессоров с архитектурой «Эльбрус»,включая процессоры Эльбрус-2С+ и Эльбрус-4С, с помощью широкой командына одном процессорном ядре в каждом такте можно запускать на исполнение:на ациклических участках кода до 16 операций, при выполнении циклов – до 23операций, 8 64-разрядных вещественных операций.
В процессоре Эльбрус-8С39уже можно запускать на исполнение до 25 операций и 12 64-разрядныхвещественных операций.Для снижения потерь от доступа за данными в память реализованаппаратно-программный механизм асинхронной предварительной подкачкиданных в специальные буферные памяти. Специальные операции подготовкипереходов обеспечивают возможность эффективно осуществлять переходы безиспользования предсказателя переходов. Аппаратура поддерживает средства(исполнениеподуправлениемпредикатов)программно-управляемогопереупорядочивания операций и одновременного исполнения несколькихусловных ветвей программы.Наряду с параллелизмом на уровне операций в архитектуре «Эльбрус»реализован векторный параллелизм за счет операций над упакованнымиданными.Благодаряэтомувозможностивыполнения32-разрядныхвещественных операций на одном ядре возрастают в 2 раза и позволяютисполнять: на «Эльбрус-2С+» и «Эльбрус-4С» - до 16, а на процессоре«Эльбрус-8С» – до 24 упакованных операций (Флопс).
Упакованные операцииреализованы также для целочисленных операций. Они находят применение втаких областях, как обработка сигналов, обработка изображений, графика и др.Вовновьразрабатываемыхпроцессорахсархитектурой«Эльбрус»возможности выполнения упакованных операций удваиваются.Процессоры с архитектурой «Эльбрус» поддерживают и расширяют припереходе к новым поколениям параллелизм потоков управления на основемногоядерности.Кромеэтогоподдерживаетсяпараллелизммногопроцессорности на общей памяти с когерентными многоуровневыми кэшпамятями на базе неодинакового времени обращения к общей памяти (NUMA).Все описанныемеханизмы параллельногоисполнения эффективноподдержаны оптимизирующим компилятором, что позволяет автоматическиполучатькоды,использующиемощноепараллельные возможности архитектуры [16].40процессорноеядроидругиеТехнологии параллельного исполнения операций с использованием дляэтого оптимизирующего компилятора находят применение в развитииизвестных архитектур.
Хотя в большинстве универсальных процессоровиспользуется внеочередное аппаратное планирование потока операций,некоторые элементы планирования вычислений с помощью компиляторазаложены в архитектуру Sparc64, начиная со Sparc64 VIIIfx – специальногорасширения архитектуры Sparc v9 для суперкомпьютеров. Как и в архитектуре«Эльбрус», в этой архитектуре используются большие регистровые файлы, атакже возможность закодировать одновременную выборку сразу двухопераций, с помощью которых оптимизирующему компилятору удаетсягораздо лучше распараллеливать вычисления, особенно в циклах.1.2.3 Динамическая компиляция и оптимизацияДинамическая компиляция и оптимизация программ играют все болееважную роль в процессе повышения эффективности и надежности, а также приобеспечении эффективной совместимости с существующими аппаратнымиплатформами.
Она особенно важна для архитектур с явным параллельнымисполнением операций.В процессорах с архитектурой «Эльбрус» технология динамическойкомпиляции и оптимизации, прежде всего, используется для обеспеченияполной двоичной совместимости с архитектурой Intel x86, x86-64 и двоичнойсовместимости на уровне приложений под управлением операционной системы«Эльбрус», базирующейся на OS Linux [17]. Эта система включает в себянесколько уровней динамических компиляторов.
Простейшие шаблонныекомпиляторы генерируют не очень оптимальный код, но зато работают оченьбыстро.Асамыевысокиеуровнисистемыдинамическойдвоичнойоптимизации полностью используют все параллельные возможности целевойархитектуры «Эльбрус».41Рис. 1.2.1 Система двоичной совместимости в архитектуре «Эльбрус»За счет специальной аппаратной поддержки в режиме совместимостиэффективноисполняютсямногопоточныедвоичныеприложенияссоблюдением моделей памяти исходной аппаратной платформы (порядокобращений в память), и обеспечивается реализация точных и асинхронныхаппаратных прерываний. Для снижения потерь от динамической компиляции,она выполняется параллельно с исполнением на отдельных ядрах многоядернойи многопроцессорной архитектуры «Эльбрус». Хорошо оптимизированныекоды часто исполняемых регионов сохраняются в специальной базе кодов, чтоускоряет повторное исполнение программ.Динамическая оптимизация обладает также хорошими адаптивнымисвойствами.Онанаблюдаютсяпозволяетдинамическиеперекомпилироватьсобытия,регионы,негативновкоторыхвлияющиенапроизводительность, и устранить причины возникновения таких событий.
Этосвойство динамической оптимизации используется в системе динамическойкомпиляции для архитектуры «Эльбрус». Благодаря свойству адаптивноститехнология динамической компиляции использовалась компанией VMware нараннихэтапахреализациисистемвиртуализации.Динамическаяперекомпиляция привилегированного кода, который при исполнении внепривилегированномрежимевызывал42многопрерываний,позволяласущественносократитьихчислоиподнятьэффективностьсистемывиртуализации.Примечательноиспользованиесистемыдинамическойкомпиляцииоптимизации в недавно объявленном процессоре Denver, созданном в компанииNvidia.
Этот процессор реализует систему команд ARM v.8, т.е. 64-разряднуюархитектуру, которую предполагается использовать, в том числе, и в областиэнергосберегающих серверов и суперкомпьютеров. В самом начале исполненияпрограммы исходный ARM код аппаратным образом преобразуется вовнутренние команды. При этом выполняются не более двух операций за такт,но собирается информация о передачах управления в программе. В случае,когда исполнение какого-то участка кода достигает некоторого пороговогозначения, аппаратно вызывается динамический двоичный компилятор, которыйоптимизирует и сохраняет микрокод соответствующего региона, используявозможность запускать до семи внутренних операций за такт за счет явногоуправления параллелизмом в микрокоде.
Приводятся данные, что на работунеоптимизированного кода и самой динамической компиляции затрачиваетсявсего только 3% общего времени исполнения. А на вещественных приложенияхпроцессор Denver работает быстрее, чем предназначенный для работы в том жеэнергосберегающем сегменте процессор последнего поколения Haswell откомпании Intel. Технология, реализованная в процессоре Denver, очень похожана технологию, реализованную в процессорах с архитектурой «Эльбрус».Отличие заключается в том, что в процессорах линии «Эльбрус» используетсяболее широкая команда, позволяющая исполнять за такт существенно большеопераций.Динамическая компиляция и оптимизация находят применение приреализацииаппаратнымпрограмм,требующихособенностямихорошейресурсам.Вадаптацииобластикконкретнымсуперкомпьютеровдинамическая компиляция используется в технологии OpenCL, котораяиспользуется для оптимизации программ, как для графических, так и для43универсальных процессоров.
Для этого отдельные, наиболее вычислительноемкие ядра программ реализуются на языке OpenCL C, компилируются впромежуточный язык, например, LLVM, а при запуске программы наисполнениекомпилируютсяизпромежуточногопредставлениявкодконкретной аппаратной платформы. Аналогичный подход применяется дляоптимизации библиотеки OpenGL. Эта технология позволяет максимальноэффективно использовать все параллельные возможности целевой аппаратнойплатформы, включая средства векторизации и многопоточного исполнения.В системе программирования архитектуры «Эльбрус» с самого начала ееразработки была заложена возможность сохранения программы не только ввидедвоичногокода,ноиввидепромежуточногопредставления,семантически близкого к языку C.
Промежуточное представление программ дляархитектуры«Эльбрус»EIR(ElbrusIntermediateRepresentation)былоразработано до появления промежуточного представления LLVM, но ониобладают значительным сходством. Это, в частности, позволило разработчикамкомпиляторадляархитектуры«Эльбрус»оптимизироватьшейдеры,реализованные в OpenGL с помощью библиотеки LLVMpipe и ускоритьисполнение трехмерной графики в 3 раза.Для повышения надежности программ часто используются безопасныеязыки, такие как Java и C#.