Файл: Методические указания Список лабораторных работ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 31

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Вычислительные системы «ЭЛЬБРУС»
Методические указания

Список лабораторных работ:
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 с.