ПОД-3 (кр_б)
Описание файла
Файл "ПОД-3" внутри архива находится в папке "кр_б". Документ из архива "кр_б", который расположен в категории "". Всё это находится в предмете "параллельная обработка данных" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "ПОД-3"
Текст из документа "ПОД-3"
522гр. Аристов Михаил 3 Контрольная работа.
-
Реализация условных операторов в архитектуре EPIC
Концепция реализации параллелизма на уровне команд (Explicitly Parallel Instruction Computing) определяет новый тип архитектуры, способной конкурировать по масштабам влияния с RISC. Эта идеология направлена на то, чтобы упростить аппаратное обеспечение и, в то же время, извлечь как можно больше «скрытого параллелизма» на уровне команд, используя большую ширину «выдачи» команд (WIW -Wide Issue-Width) и длинные (глубокие) конвейеры с большой задержкой (DPL — Deep Pipeline-Latency), чем это можно сделать при реализации VLIW или суперскалярных стратегий. EPIC упрощает два ключевых момента, реализуемых во время выполнения. Во-первых, его принципы позволяют во время исполнения отказаться от проверки зависимостей между операциями, которые компилятор уже объявил как независимые. Во-вторых, данная архитектура позволяет отказаться от сложной логики внеочередного исполнения операций, полагаясь на порядок выдачи команд, определенный компилятором. Более того, EPIC совершенствует возможность компилятора статически генерировать планы выполнения за счет поддержки разного рода перемещений кода во время компиляции, которые были бы некорректными в последовательнойархитектуре. Более ранние решения достигали этой цели главным образом за счет серьезного увеличения сложности аппаратного обеспечения, которое стало настолько значительным, что превратилась в препятствие, не позволяющее отрасли добиваться еще более высокой производительности. EPIC разработан именно для того, чтобы обеспечить более высокую степень параллелизма на уровне команд, поддерживая при этом приемлемую сложность аппаратного обеспечения.
Компилятор EPIC сталкивается с серьезной проблемой при создании плана выполнения: информация определенного типа, которая существенно влияет на запись исполнения, становится известна только лишь в момент выполнения программы. Например, компилятор не может точно знать какая из ветвей после оператора перехода будет выполняться, когда запланированный код пройдет базовые блоки и какой из путей графа будет выбран. Кроме того, обычно невозможно создать статический план, который одновременно оптимизирует все пути в программе. Неоднозначность также возникает и в тех случаях, когда компилятор не может решить, будут ли ссылки указывать на одно и то же место в памяти. Если да, то обращение к ним должно осуществляться последовательно; если нет, то их можно запланировать в произвольном порядке. При такой неоднозначности часто наиболее вероятен некий конкретный результат. Одним из важнейших принципов EPIC в данной ситуации является возможность разрешения компилятору оперировать вероятностными оценками — он создает и оптимизирует POE для наиболее вероятных случаев. Однако EPIC обеспечивает архитектурную поддержку, такую как спекулятивное выполнение по управлению и по данным (Control and Data Speculation), с тем, чтобы гарантировать корректность программы, даже если исходные предположения были не верны. Когда предположение оказывается неверным, совершенно очевидно падение производительности при выполнении программы. Такой эффект производительности иногда виден на плане программы, к примеру, в тех случаях, когда существует высоко оптимизированная программная область, а код исполняется в менее оптимизированной. Также падение производительности может возникнуть в моменты «остановки» (Stall), которые на плане программы не видны — определенные операции, подпадающие под наиболее вероятный и, следовательно, оптимизированный случай, выполняются при максимальной производительности, но приостанавливают процессор для того, чтобы гарантировать корректность, если возникнет менее вероятный, не оптимизированный случай.
-
Коммуникационные сети вычислительных кластеров
-
SCI (англ. Scalable Coherent Interface, масштабируемая согласованная взаимосвязь) — сеть используемая для построения кластеров. SCI-кластеры имеют преимущество при решении задач, требующих большого количества пересылок коротких сообщений, так как в таких задачах время задержки (латентность) играет решающую роль. Представляет собой комбинацию шины и локальной сети, обеспечивает реализацию когерентности кэш-памяти, размещаемой в узле SCI, посредством механизма распределенных директорий, который улучшает производительность, скрывая затраты на доступ к удаленным данным в модели с распределенной разделяемой памятью. Производительность передачи данных обычно находится в пределах от 200 Мбайт/с до 1000 Мбайт/с на расстояниях десятков метров с использованием электрических кабелей и километров с использованием оптоволокна. SCI уменьшает время межузловых коммуникаций по сравнению с традиционными схемами передачи данных в сетях путем устранения обращений к программным уровням – операционной системе и библиотекам времени выполнения; коммуникации представляются как часть простой операции загрузки данных процессором (командами load или store).
-
Myrinet — наиболее широко применяемый для построения кластеров тип коммуникационной среды. Около 10 % кластерных установок из списка Top500 самых мощных компьютеров мира построены с применением Myrinet. Как коммутируемая сеть, аналогичная по структуре сегментам Ethernet, соединенным с помощью коммутаторов, Myrinet может одновременно передавать несколько пакетов, каждый из которых идет со скоростью, близкой к 2 Гбит/с. В отличие от некоммутированных Ethernet и FDDI сетей, которые разделяют общую среду передачи, совокупная пропускная способность сети Myrinet возрастает с увеличением количества машин. На сегодняшний день Myrinet чаще всего используют как локальную сеть (LAN) сравнительно небольшого физического размера, связывая вместе компьютеры внутри комнаты или здания. Из-за своей высокой скорости, малого времени задержки, прямой коммутации и умеренной стоимости, Myrinet особенно популярен для объединения компьютеров в кластеры. Среда Myrinet выгодно отличается от многих других сред передачи, в частности SCI, простотой концепции и аппаратной реализации протоколов. Myrinet является открытым стандартом.
-
QsNet — коммуникационная среда от компании Quadrics, обеспечивающая задержки на уровне SCI и пропускную способность до 900 мегабайт/сек (QsNet II). Ввиду высокой стоимости оборудования QsNet, как правило, применяется для построения особо крупных кластеров терафлопного диапазона. Оборудование Quadrics традиционно используется для построения мощнейших в мире кластерных систем на базе операционной системы Linux. В числе владельцев суперкомпьютеров с оборудованием QsNet и QsNet II — крупнейшие суперкомпьютерные центры США, такие как Национальные Лаборатории Lawrence Livermore, Los Alamos, Pacific Northwest и Sandia, входящие в состав Национального агентства ядерной безопасности Министерства энергетики США. Кластеры с оборудованием Quadrics не раз занимали лидирующие позиции в списке самых мощных компьютеров мира Тор500. Так, кластер Thunder, принадлежащий Lawrence Livermore National Laboratory, в 2004 году стал вторым по мощности суперкомпьютером в мире, показав рекордную реальную для Linux-кластера производительность в 19.94 TFlops (87% от пиковой). QsNet II используется для построения самого быстрого в Европе суперкомпьютера Tera10 с производительностью свыше 60 терафлоп, который будет установлен в CEA, агентстве ядерной безопасности Франции.
-
RapidIO — это высокопроизводительный интерфейс передачи данных для соединения микросхем в рамках одной печатной платы, а также для соединения между собой нескольких печатных плат. Данный интерфейс был разработан для применения во встраиваемых системах. Основными конкурентами RapidIO являются HyperTransport, Infiniband и PCI Express, которые, однако, предназначены для решения других задач. RapidIO представляет собой высоконадежную и высокоскоростную технологию обмена данными, которая идеально подходит для сетевых приложений. Технология RapidIO обеспечивает аппаратную инфраструктуру для распределенных систем и имеет очень высокий уровень отказоустойчивости и широкие возможности функционального взаимодействия и управления потоками данных, которые отсутствуют в других технологиях этого вида. Программное обеспечение имеет критическое значение для масштабируемых, распределенных систем на основе RapidIO. Для того чтобы в полной мере задействовать возможности технологии RapidIO, необходимо применение операционной системы реального времени.
-
Цели и методы профилирования программ
При разработке программного обеспечения и его дальнейшей поддержке большой интерес представляют инструменты, позволяющие собирать статистику различных аспектов исполнения тех или иных участков кода. В первую очередь эта статистика необходима для выявления наиболее активно исполняющихся участков и их дальнейшей оптимизации. В настоящее время существует довольно большой ассортимент инструментов, предоставляющих возможности профилирования. Это могут быть как довольно простые утилиты, которые, например, позволяют собирать статистику исполнения функций, так и более сложные программы, базирующиеся на основе компиляторов и предоставляющие более широкий спектр возможностей. В частности, многие инструменты, интегрированные в компиляторы, позволяют создавать при компиляции дополнительные участки кода - счётчики, собирающие статистику числа исполнений определённых участков кода. Информация, собираемая всеми счётчиками, обычно является избыточной из-за наличия зависимостей между количеством исполнений различных участков. Поэтому представляют интерес алгоритмы, позволяющие сократить необходимое число счётчиков, а также минимизировать накладные расходы, связанные с их исполнением. Это позволяет снизить как время работы специальной версии программы, снабжённой профилирующим кодом, так и сократить объём, занимаемый профильной информацией.
-
Применение мультитредовых микропроцессоров в научных вычислениях.
Большинство научных задач связано с вычислением алгоритмов для большого количества вводных данных. Максимально ускорить процесс вычисления таких программ помогают мультитредовые микропроцессоры. Эти процессоры позволяют переключаться с различных программ-тредов без задержек.
5. Интервальная машинная арифметика
В реальных машинах невозможно хранить число с любой точностью. Например у нас есть машина(гипотетическая) которая может хранить 2 знака после запятой. Поэтому числа вида x/100, где x – целое, будут храниться с абсолютной точностью. А вот при попытке сохранить число 5.555 у нас возникнет проблема. Результат будет либо 5.55 либо 5.56, в зависимости от настроек округления. В машине с интервальной арифметикой в данном случае результатом будет интервал [5.55, 5.56]. Т.е. округление происходит в обе стороны и интервал гарантированно содержит верный результат.