Эльбрус. Вычислительные системы ЭЛЬБРУС. Методические указания Список лабораторных работ
Скачать 168.57 Kb.
|
Вычислительные системы «ЭЛЬБРУС» Методические указания Список лабораторных работ: 1. Развёртывание среды двоичной трансляции 2. Интегрированные среды разработки ПО 3. Получение исполняемого файла для платформы "Эльбрус" 4. Средства построения графических приложений 5. … Лабораторная работа №1. Развёртывание среды двоичной трансляции Цель работы – изучение программного пакета rtc и приобретение навыков по запуску x86- приложений на целевой архитектуре «Эльбрус». Техника двоичной трансляции сводится к преобразованию двоичных кодов исходной архитектуры в функционально эквивалентные последовательности кодов целевой архитектуры, впоследствии исполняемые на аппаратуре целевой платформы. В микропроцессорах с архитектурой «Эльбрус» технология динамической компиляции и оптимизации направлена на обеспечение полной двоичной совместимости с приложениями и операционными системами с архитектурой Intel x86 и x86-64, а также двоичной совместимости на уровне приложений под управлением операционной системы «Эльбрус Линукс» x86- 64. А благодаря тому, что в архитектуру «Эльбрус» изначально заложена аппаратная поддержка трансляции, накладные расходы получаются небольшими. Представленное на платформе решение работает в двух режимах: как бинарный транслятор уровня системы, когда можно установить и запустить целую ОС, и как бинарный транслятор уровня приложений. Первый режим реализован пакетом lintel, а второй – rtc и работает под управлением уже запущенной операционной системы. Использование rtc предполагает следующие составные части: • хост (основная операционная система) – операционная система, под которой запускается транслятор, содержащая в отдельном каталоге образ гостевой системы. • гость (гостевой образ) – операционное окружение, файловая система которого (в виде подкаталога в файловой системе хоста) имеет архитектуру x86 или x86-64. Ядро не требуется, что несколько роднит данный режим с контейнерами. В качестве штатной гостевой файловой системы используется файловая система ОС «Эльбрус Линукс» x86-64. Использование других гостевых файловых систем допускается, однако следует учитывает следующие моменты: • в качестве гостевого образа рекомендуется использовать сборку с аналогичной версией ядра Linux. • наличие ограничений, обусловленных архитектурой, например отсутствие поддержки виртуализации на процессорах «Эльбрус» с версией архитектуры ниже 6 или отсутствие поддержки AVX- инструкций и др. Задание: 1) Выбрать х86- программу для запуска в режиме двоичной трансляции. 2) Выбрать гостевую ОС 3) Подготовить гостевую файловую систему по руководству из учебного пособия [ 1 ] 4) Развернуть гостевую файловую систему на ВК «Эльбрус» 5) Произвести запуск ранее выбранной программы 6) Подготовить отчёт по ЛР Бинарный компилятор уровня приложений (RTC) оформлен в виде пакета, входящего в состав общего программного обеспечения для операционной системы ОС «Эльбрус Линукс». При установке бинарный компилятор вместе с набором вспомогательных утилит и скриптов на языке bash размещается в файловой системе – в директории /opt/mcst/rtc. Перед первым запуском компилятора уровня приложений необходимо произвести подготовку гостевой файловой системы, а также при необходимости её сконфигурировать. Создание пользовательской гостевой файловой системы предлагается производить на работающей операционной системе, чью файловую систему предполагается использовать для работы бинарного компилятора. В режиме суперпользователя необходимо запустить скрипт pack_guestfs.sh. Скрипту доступно несколько опций, основными среди них являются: --include – включить указанный файл/директорию в создаваемый образ гостевой файловой системы; --exclude – исключить указанный файл/директорию из создаваемого образа гостевой файловой системы. Результатом работы скрипта pack_guestfs.sh будет создание в текущей директории архива guestfs.tgz. Созданный архив гостевой файловой системы необходимо перенести на вычислительный комплекс под управлением процессора на архитектуре «Эльбрус», и распаковать при помощи скрипта unpack_guestfs.sh , расположенного в директории /opt/mcst/rtc/bin, в режиме суперпользователя. Скрипту доступно несколько опций, основными из которых являются: --root – распаковать гостевую файловую систему в указанную директорию; --delete – удалить архив с гостевой файловой системой при успешном завершении работы скрипта. Подготовка гостевой файловой системы позволяет создать в её корневой директории стандартное средство запуска бинарного компилятора уровня приложений – скрипт run_shell.sh, с помощью скрипта init_guestfs.sh. Данное действие производится в режиме суперпользователя при помощи команды: $ /opt/mcst/rtc/bin/init_guestfs.sh. Скрипту доступно несколько опций, основными из которых являются: --root – определить указанную директорию в качестве корня гостевой файловой системы (по умолчанию в /export/rtc); --shell – использовать указанный гостевой командный интерпретатор (по умолчанию /bin/bash). Основной вариант запуска бинарного компилятора уровня приложений осуществляется при помощи скрипта run_shell.sh. Пользователь может либо перейти в режим командной строки, запустив указанный скрипт без опций: $ /export/rtc/run_shell.sh , либо по опции --execute указать явно какое приложение в кодах исходной платформы необходимо запустить, например: $ /export/rtc/run_shell.sh --execute /путь/к/приложению, где путь к приложению, скрипту или команда указывается относительно гостевой файловой системы. Лабораторная работа №2. Интегрированные среды разработки ПО Цель работы – изучение интегрированных сред разработки ПО, доступных в ОС «Эльбрус-Линукс» для архитектуры «Эльбрус». В составе дистрибутива «Эльбрус Линукс» версии 6.0.1: • Компилятор lcc (Elbrus C Compiler) версии 1.25.19 совместимый с gcc 7.3.0, llvm – в разработке; • Средства сборки: make 4.2.1, automake 1.16.2, cmake 3.15.4, pmake 2.1.35, apache maven 3.6.3 (для Java), Mono 5.16 (в 2022 обновление до 6.12); • Графические среды разработки ПО: anjuta 3.34, code::blocks 17.12 и qt- creator 4.8.2 (qt4 + qt5); • Системы контроля версий: git 2.28 и др. • Другое ПО: LibreOffice 6.3, openSSL 1.1.1h, openJDK8 и openJDK11, .NET Core 3.1.8 В качестве задания предлагается практическое изучение пакетов Anjuta, CodeBlock, Eclipse или Qt Creator на выбор студента. Anjuta — официальная интегрированная среда разработки GNOME для языков Си, C++, Vala, Java, JavaScript, Python, особенно хорошо подходит для разработки графических программ. Одним из самых мощных инструментов в Anjuta является менеджер проекта. Он не только может открывать почти все проекты, основанные на Automake и Autoconf; он не добавляет никакой информации, связанной с Anjuta, так что ваш проект также может обслуживаться и разрабатываться вне Anjuta. Eclipse — свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation. Eclipse написана на Java, потому является платформо- независимым продуктом. Code::Blocks — свободная кроссплатформенная среда разработки. Code::Blocks написана на C++ и использует библиотеку wxWidgets. Имея открытую архитектуру, может масштабироваться за счёт подключаемых модулей. Поддерживает языки программирования Си, C++, D, Fortran. Qt Creator — кроссплатформенная свободная IDE для разработки на Си, C++, JavaScript и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. Лабораторная работа №3. Получение исполняемого файла для платформы "Эльбрус" Цель работы – Ознакомление с компилятором LCC. Получение исполняемого файла для платформы «Эльбрус». Ознакомление со структурой широких команд. Порядок выполнения: • составить программу на языке с/с++ по заданному варианту для целочисленных и вещественных значений; • составить Makefile для компилирования в объектный файл, получения исполняемого файла и ассемблерного, очистки и удаления; • скомпилировать для платформ «Эльбрус» и x86-64; • оценить время сборки и исполнения при различных параметрах сборки; • для варианта с оптимальным временем исполнения провести измерения исполнения для вещественных и целочисленных значений матрицы с увеличенной размерностью (х10, х100, х1000). Содержание отчёта: Титульный лист. Цель работы. Таблица с характеристиками используемых выч. комплексов (e2k и x86) и таблица с параметрами и временем сборки и исполнения. Краткий ассемблерый листинг одной из функций, демонстрирующий отличия и особенности систем. Листинг кода и Makefile. Скриншоты или результаты. Выводы. Варианты заданий: Вариант Задание 1 Заполнение матрицы С по результатам сравнения элементов первых двух. Матрицы А и В размером И х Ф. В матрицу С записываются большие элементы, если И>O, либо меньшие. Начальные значения задаются по формуле. 2 Сложение (С) и вычитание (D) матриц А и Б размером И х Ф; начальные значения вещественны и задаются по формуле. 3 Умножение матрицы А размером И х Ф на матрицу В размером Ф х О; начальные значения вещественны и задаются по формуле. 4 Умножение матрицы А размером Ф х И на матрицу В размером И х О. А[ij] = (Ф*([i mod 2]-1) + О*([j mod 2]+1)) / И + random; B[ij]= (И*([i mod 2]+1) - О*([j mod 2]-1)) / Ф + random. Формула: А[ij] = (Ф*([i mod 2] +1) + О*([j mod 2]-1)) / И ; B[ij]= (И*([i mod 2]-1) - О*([j mod 2]+1)) / Ф. Количество знаков после запятой = Ф. Ф, И, О – Фамилия, Имя и Отчество студента. Лабораторная работа №4. Средства построения графических приложений Цель работы – ознакомление с основными свойствами и поддерживаемыми событиями стандартных компонентов, применяемых для создания интерфейсов при разработке графических приложений, с использованием кроссплатформенных библиотек доступных в ОС «Эльбрус- Линукс». Содержание отчёта: Титульный лист. Цель работы. Листинг кода. Скриншоты и результаты. Выводы. Основные графические библиотеки, доступные в ОС «Эльбрус-Линукс»: • Qt – представляет собой целый набор инструментов для быстрого и удобного проектирования GUI, являясь также гибкой и кросс- платформенной. Qt расширяет C++ с помощью МОК (Мета-объектного компилятора) и предоставляет некоторые дополнительные функции. • wxWidgets — одна из старейших, но в то же время наиболее известных графических библиотек для отрисовки GUI. Её основной плюс — производительность. Если QT использует низкоуровневый код лишь для таких элементов, как кнопки и полосы прокрутки, то wxWidgets для каждой системы свой, и благодаря этому все элементы отображаются максимально похожими на системный стиль. • GTK+ — графический фреймворк, широко применяемый во многих системах. Изначально он задумывался как компонент GIMP, но за 20 лет после выпуска первой стабильной версии он нашёл применение в сотнях других приложений. Сейчас GTK+ — полноценный графический фреймворк, не уступающий QT. • SDL — кроссплатформенная 2D-библиотека, предназначенная для написания приложений (в основном игр). • Cairo — библиотека для отрисовки векторной графики. Также является частью GTK+. Задание: 1) Для задания из ЛР №3, либо по варианту составить макет пользовательского интерфейса 2) Выполнить описание поставленной задачи и выбранного метода (библиотеки) решения 3) Разработать исполняемый модуль 4) Разработать тестовые примеры 5) Подготовить отчёт по ЛР Варианты задания [ 2 ] : 1. Умножение матриц B A C * = 2. Нахождение точек пересечения окружности и прямой линии. 3. Решение квадратного уравнения 0 2 = + + c bx ax 4. Дальность полета и высота подъема тела при броске под углом. 5. Умножение комплексных чисел 3 3 2 2 1 1 ib a ib a ib a + = + + + 6. Нахождение точек пересечения двух окружностей. 7. Решение системы вида + = + = d cx y b x a y 8. Нахождение точки пересечения двух прямых. 9. Время движения тела при скольжении по наклонной плоскости. 10. Нахождение точек пересечения овала и прямой линии. 11. Нахождение обратного комплексного числа 2 2 b a ib a ib a + − = + 12. Суммарное сопротивление при различных соединениях. 13. Скорости тел после соударения (абсолютно упругий и неупругий удары). 14. Решение системы из двух линейных уравнений = + = + 2 22 21 1 12 11 b y a x a b y a x a 15. Расчет кпд кипятильника. 16. Нахождение точек пересечения гиперболы и прямой линии. 17. Суммарная емкость при различных соединениях. 18. Сложение матриц B A C + = 19. Объем, давление и температура при различных термодинамических процессах 20. Нагревание и охлаждение, включая плавление и парообразование тел с учетом теплоемкости. Используемая библиотека № по списку группы QT 1, 19 4 7 10 13 16 GTK+ 2, 20 5 8 11 14 17 wxWidgets 3 6 9 12 15 18 При большом объеме входных и выходных данных необходимо предусмотреть возможность их ввода из файла, редактирования и вывода в файл. Лабораторная работа №5. Оптимизация вычислений Разработка многопоточных приложений Elbrus Math Library (EML) … Будет дополнено позже Источники 1. Белов К.А., Горелик Д. В., Гордеев А.В. Вычислительные системы «ЭЛЬБРУС». Учебное пособие 2021 г. 2. Попов В.П., Соловьёв Н.В. Человеко-машинный интерфейс. Методические указания 2007 г. Рекомендуемая литература 1. Руководство по эффективному программированию на платформе «Эльбрус» — Нейман-заде М. И., Королёв С. Д. — 2020 2. Микропроцессоры и вычислительные комплексы семейства «Эльбрус» — Ким А. К., Перекатов В. И., Ермаков С. Г. — СПб.: Питер, 2013 — 272 с. |