«Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017)

Материал из 0x1.tv

Докладчик
Михаил Шигорин.jpg
Михаил Шигорин

В докладе рассматривается интеграция поддержки архитектуры «Эльбрус-2000» в репозиторий проекта Сизиф, её основные этапы, задачи и текущее состояние, а также особенности архитектуры и её сравнительные возможности.

Видео

on youtube

Презентация

«Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf «Эльбрус» на Альте (Михаил Шигорин, OSSDEVCONF-2017).pdf

Thesis

Состояние: 2017

В докладе 2016 года речь шла о текущем результате в виде полутысячи альтовских пакетов, собранных нативно на рабочей станции «Эльбрус-401» в чруте под управлением ОС Эльбрус; за год произошли существенные сдвиги, позволившие задуматься над добавлением поддержки архитектуры e2k в нашу сборочницу:


  • «Эльбрус-401» с весны 2017 года загружен под альтом;
  • объём репозитория перевалил за 2500 пакетов;
  • собраны многие ключевые библиотеки;
  • введён в эксплуатацию сервер «Эльбрус-4.4».


Среди заметных результатов — важные для возможности сборки целых сегментов Sisyphus библиотеки Boost и Qt5.

В чисто прикладном плане за это время была обеспечена возможность применения «Эльбрус-401» под управлением ОС Альт в качестве базовой рабочей станции (несколько графических сред, включая Xfce, LXQt, MATE; браузер Firefox~ESR; разнообразные утилиты), а также развита серверная часть вплоть до поддержки функционирования в качестве контроллера домена Active Directory.

Задачи

Обозримая часть маршрута выглядит так:


  • базовая сборочная среда;
  • наработка репозитория;
  • развёртывание транзакционной сборочницы;
  • перевод в режим «догоняющей» сборки;
  • публикация репозитория.


На сегодня мы дошли до пробного развёртывания girar-builder (системы, обеспечивающей возможность транзакционного изменения репозитория по мере новых сборок пакетов), но упёрлись в необходимость выставления существенного количества «ручек» --without/--disable, отключающих недоступную сейчас функциональность (например, сборку с ещё не собранными библиотеками).

Для полноценного добавления поддержки архитектуры, тем не менее, остаётся нерешённым ряд задач технического плана. Среди них наведение порядка в имеющемся репозитории: уже произведено устранение остаточных alien-пакетов, на сейчас таковыми остались компилятор и его библиотеки, но пока остаются многие временные пакеты, формально предоставляющие недостающие требуемые где-либо зависимости или являющиеся «мостиками» при различии имён. Также продолжается сборка недостающих ключевых компонентов, что позволит продолжить включение отключенных на предыдущей стадии портирования «ручек»; всё-таки предстоит перенос остаточных «отключаторов» в конфигурацию сборщиков, так как все сто процентов доступного программного обеспечения пересобрать заведомо не получится в силу объективных различий платформ и их экосистем (например, для~e2k нет смысла собирать intel-gpu-tools).

Особенности архитектуры

Сизиф портирован на несколько аппаратных архитектур и каждая из них чем-то да выделяется; у архитектуры «Эльбрус-2000» в целом на сегодня наиболее выделяющимся отличием является отсутствие компилятора gcc -- в качестве системного компилятора применяется lcc, имеющий как неоспоримые достоинства в плане возможностей оптимизации (аналогичные выигрышу icc на x86/ia64, только более ярко выраженные), так и проблемы любого не-gcc в плане совместимости с~GNU-расширениями стандарта языка Си и конкретными опциями вызова.

В силу выбранного типа архитектуры (VLIW с явным параллелизмом) характерна сравнительно невысокая скорость работы компилятора, усугубляющаяся тем, что оптимизация оптимизирующего компилятора для работы на таких платформах особенно сложна; при этом практического быстродействия достаточно для пересборки за сутки более чем 1600 пакетов на шестнадцати процессорных ядрах.

По части аппаратного обеспечения (используются системы на базе микропроцессора «Эльбрус-4С») можно выделить такие особенности:


  • невысокая скорость работы относительно текущих x86;
  • хорошая перегрузочная способность (меньше «проседает»);
  • хорошая масштабируемость многопроцессорной системы;
  • поддержка больших объёмов памяти.


В частности, время сборки больших проектов (ядро Linux, браузер Firefox) на четырёхпроцессорной машине уменьшалось практически линейно по сравнению с однопроцессорной.

Значительный объём ОЗУ — 24 Гб штатно на рабочей станции, 96 Гб на сервере -- сильно облегчает параллельную сборку и сборку крупных пакетов, не вызывая подкачки страниц памяти с диска (на ARMv7 и~MIPS с этим было куда сложней, что лишь усугубляло недостаток производительности процессора).

При этом надо понимать, что потенциальная пропускная способность интерфейсов DDR3 и~SATA2 на 4С задействована не в полной мере.

Стоит отметить, что итоговая производительность системы на VLIW-архитектуре сильно зависит от того, насколько удалось реализовать параллелизм выполнения кода при его компиляции; поэтому на одном и том же ПК «Эльбрус-401» система может напоминать как Pentium~III, так и Core2 по производительности в зависимости от версии компилятора и переданных ему опций. Разумеется, порой решающее значение имеют всё-таки ручные правки кода, которые мы всё так же получаем от коллег из МЦСТ.

Ссылки
  1. http://altlinux.org/ports/e2k
  2. http://0x1.tv/20170128J
  3. http://lvee.org/ru/abstracts/251
  4. http://sdelanounas.ru/blogs/96816
  5. http://mcst.ru


Примечания и ссылки

Plays:20   Comments:5