ПОД_3 (1184245)
Текст из файла
Казачкин Дмитрий, 522 гр.
Контрольная работа №3.
-
Реализация условных операторов в архитектуре EPIC (IA64)
Программы, содержащие множество инструкций ветвления, выполняются недостаточно эффективно в силу того, что работа конвейера приостанавливается до вычисления результата условия перехода.
Предсказание переходов снимает данную проблему лишь частично, поскольку неправильно предсказанный переход лишь усугубляет ситуацию. К тому же, предсказание переходов затруднительно на этапе компиляции программы, когда выполняется управление параллелизмом в системах EPIC.
В связи с этим, процессоры архитектуры IA64 выполняют оба перехода. Когда условие перехода вычислено, лишняя ветвь отбрасывается, а вычисление нужной продолжается.
Для реализации выбора ветвей использован 64-битный регистр битовых флагов.
-
Коммуникационные сети вычислительных кластеров
Кластер — группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс.
Сеть определяется входящими в нее элементами и топологией их соединения. В качестве элемента кластера часто берут обычный компьютер общего назначения, или специально разработанный облегченный аппаратный модуль, чтобы добиться высокой производительности не качеством, а количеством узлов.
Топология сети может быть произвольной:
-
полный граф
-
линейная топология
-
звезда
-
кольцо
-
ячеистая топология
-
решётка
-
гиперкуб
Топологии отличаются множеством параметров – числом связей, степенью связности, диаметром (максимальным расстоянием между узлами), масштабируемость, простота в обслуживании и т.д.
Пример - Мощный кластер Kraftway, созданный для кафедры Вычислительной техники Московского института электронной техники (МИЭТ), вошел в последнюю редакцию рейтинга TOP50 самых производительных суперкомпьютеров СНГ. В нем 25 узлов, которыми служат станции Kraftway Credo (по 2 четырехъядерных процессора Intel Xeon 5335 в каждом). Кластер работает под управлением новой операционной системы Microsoft Windows HPC Server RC 1 и обеспечивает пиковую производительность на уровне 1600 GFlops.
-
Цели и методы профилирования программ
Профилирование — сбор характеристик работы программы. Профилирование позволяет осуществлять поиск узких мест, построение графов вызовов с указанием времени работы, анализ покрытия кода и т.п. Конечная цель – выявить наиболее часто используемые и наиболее низкие по производительности блоки кода, для того, чтобы впоследствии это исправить.
Методы профилирования:
-
Event based. В данном случае, профилировщиком является сама среда выполнения (например, .NET framework или виртуальная машина Java, а также среды Python и Ruby).
-
Statistical. По прерываниям системы проверяется значение счетчика команд изучаемой программы.
-
Hypervisor / Simulator. Программа запускается в виртуальном окружении или под симулятором.
-
Instrumentation. Модификация программы для выполнения инструкций, связанных с профилировкой
-
Модификация вручную, при написании кода
-
Модификация компилятором
-
Модификация бинарного приложения
-
Модификация при запуске
-
-
Применение мультитредовых микропроцессоров в научных вычислениях
Научные задачи часто связаны с огромным количеством данных, обрабатываемых одинаковым образом. Примеры таких задач – работа с матрицами, численным расчетом дифференциальных уравнений, различные задачи моделирования.
Мультитредовые процессоры существенно ускоряют обсчет данных задач, причем часты ситуации, когда нити почти не взаимодействуют между собой. Например, при применении локального отображения к изображению от какого-либо сенсора.
Хорошим примером удачно распараллеливаемой задачи может служить обсчет уравнения теплопроводности, когда каждая нить отвечает за свой сегмент пластины (в 3D-случае, за свой сегмент тела), а обмен данными между ними ограничен лишь синхронизацией границ соседних областей.
Треды удобны тем, что практически не имеют затрат на переключение контекстов, что делает их использование в подобных задачах предпочтительнее, нежели использование процессов.
-
Интервальная машинная арифметика (Sun, DARPA)
Традиционные подходы к представлению чисел (с плавающей / фиксированной точкой) склонны накапливать ошибку при округлении на каждом шаге. Причем, поведение алгоритмов с большим числом округлений может существенно отличаться на разных архитектурах, вплоть до абсолютно разных результатов.
В 2003 году DARPA выделила Sun грант на разработку архитектуры с интервальной арифметикой, в которой ошибка бы накапливалась в обе стороны. Например,
[a;b]-[c;d]=[округленное вниз(a-d);округленное вверх(b-c)].
Данный подход позволяет получить интервал, гарантированно содержащий точный результат, вместо классического представления числа, близкого к точному решению. При этом, можно распараллеливать многие задачи, до этого плохо распараллеливаемые именно в связи с возможными ошибками округления.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.