Вот уже 3-ий год РФ живет под лозунгом импортозамещения, в связи с чем российская ИТ-отрасль переживает бурный период. Это и проверка на качество и конкурентоспособность, и большие перспективы, и трудности переходного периода. Российский прикладной софт и качественно, и количественно ускоренными темпами догоняет мировой рынок. И железо отечественное уже есть – на слуху «Эльбрусы» и «Байкалы». Однако, для полноты замкнутости технологической ИТ-цепочки нужно еще иметь и собственное системное ПО. Как здесь обстоят дела? Об этом мы беседуем с Ириной Архипец и Александром Семеновым, менеджерами проектов по разработке системного программного обеспечения для российских процессоров класса «Эльбрус» Новосибирского центра информационных технологий УНИПРО, силами которого недавно создана отечественная Java-платформа.
1. Чем процессоры «Эльбрус» отличаются от наиболее распространенных сейчас процессоров? У них какая-то особенная архитектура?

Все современные процессоры можно отнести в большей или меньшей степени к одной из двух типов архитектур – RISC или CISC, с сокращенным (Reduced) и с полным (Complete) набором команд, или к их сочетанию. Так, например, получившие в последние годы широкое распространение ARM и MIPS процессоры, относятся к RISC-типу. Популярные x86-е процессоры начиналась 30 лет назад как CISC, а современные их модели уже берут за основу RISC-ядро, сохраняя в остальных частях CISC-принадлежность. Архитектура современных процессоров «Эльбрус» ближе к RISC-типу, потому что команды, исполняемые ими в одном такте, достаточно короткие. И x86, и ARM, и некоторые другие типы процессоров имеют определение «суперскалярный», потому что могут за один процессорный такт выполнить несколько простых скалярных команд. Но если в x86 это достигается за счет соответствующей архитектуры ядер процессора, то в процессорах «Эльбрус» это позволяет сделать очень широкое командное слово (VLIW, very long instruction word), которое может вместить до 23 элементарных команд. Однако «Эльбрус», в отличие от x86, не может сам решить, как оптимально загрузить свои ресурсы, чтобы наиболее эффективным способом провести вычисления. Эту интеллектуальную нагрузку вместо процессора берет на себя оптимизирующий компилятор. Поэтому разработка эффективных оптимизирующих компиляторов критически важна для достижения высокой производительности процессоров “Эльбрус”. Именно компилятор является наиболее сложным компонентом разрабатываемой нами виртуальной Java-машины (JVM). И хотя наша Java-машина уже достаточно хорошо функционирует, выпущено несколько промышленных версий, мы активно продолжаем работать как над уменьшением времени компиляции, так и над получением более эффективного кода.

2. Ведь Java-технология позиционируется как такая универсальная программная «машина», которая может работать на любом железе. А с ваших слов получается, что тут есть профессиональные хитрости, о которых даже не каждый программист знает.

- Универсальность Java состоит в том, что, когда вы ее развернули на своем компьютере, она будет выдавать абсолютно те же результаты, что и Java на любом другом компьютере. А хитрости начинаются, когда вы хотите, чтобы Java оптимально работала не на самой массовой архитектуре, то есть, чтобы при работе Java-машины максимально использовались особенности конкретной вычислительной платформы. Наша задача – максимально использовать архитектурные возможности «Эльбрусов» при обработке Java-кода. И мы этого добиваемся - с выпуском каждого следующего релиза JVM на «Эльбрусе» ее производительность растет. И сама платформа «Эльбрус» постоянно развивается, хотя по тактовой частоте она пока только приближается к цифрам, доступным на x86. Так что впереди у нас много интересной работы по использованию новых возможностей этой архитектуры. 

3. Сколько вы вообще занимаетесь сложным системным софтом? И почему именно вас выбрали для реализации российской JVM?

- С начала 90-х годов в течение 12 лет в УНИПРО основной объем работы шел для родоначальника Java-платформы, компании Sun Microsystems. За эти годы было выпущено 14 версий JCK, сертификационного пакета для Java-платформы, разработано множество другого системного ПО. Позже мы проводили сертификационную проверку Java-реализации еще одного ИТ-гиганта и сделали облачную Java-машину для другого западного заказчика. Этот наш большой опыт и решили использовать разработчики нового поколения «Эльбрусов» из Московского центра SPARC технологий (МЦСТ). Так что мы создание российской Java-машины на самом старте приняли в 2011 году и до сих пор им занимаемся. Но вообще наши отношения с МЦСТ – это очень давняя история, поскольку основатели нашей компании - выходцы из советского суперкомпьютерного проекта «Эльбрус». Многопроцессорные вычислительные комплексы того времени использовали те же архитектурные принципы, что и современные процессоры «Эльбрус». Они активно развивались в СССР в 70-х-90-х годах ХХ века, но потом, увы, в стране наступили серьезные экономические проблемы, и проект практически заглох. Многим российским инженерам-программистам, специалистам с уникальными квалификациями, пришлось тогда искать заказчиков на западном ИТ-рынке.

4. Что еще вы делаете для «Эльбрусов»?

- Мы также занимаемся разработкой математических библиотек для архитектуры «Эльбрус», в частности мы создали библиотеку для быстрой обработки аудио и видео -сигналов для специализированного сопроцессора (DSP).  Мы перенесли на «Эльбрус» библиотеку компьютерного зрения OpenCV и выполняем ее специальную оптимизацию для этой архитектуры, так что скоро вычислительные комплексы «Эльбрус» смогут использоваться, например, для интеллектуальной обработки сигналов видеонаблюдения. Также у нас реализуется отдельный проект по переносу на «Эльбрус» языка JavaScript, в нем мы используем наработки из нашего проекта по Java. Это позволит расширить состав доступных на процессорах «Эльбрус» популярных приложений.

5. А зачем вообще развивать свою особенную процессорную архитектуру, под которую нужно заново делать столько сложного системного программного обеспечения? Ведь сейчас все-таки глобализация на дворе, особенно в высокотехнологичных отраслях.

- Да, вот именно такой вопрос недавно студенты задавали на встрече в НГУ. Тут, вроде, все понятно – раз уж российская промышленность встала на путь импортозамещения, то в первую очередь стоило задуматься, какое «железо» контролирует наши технологические процессы, обработку, передачу и хранение информации в стратегических важных отраслях. А поскольку уже были серьезные отечественные наработки, о чем мы говорили выше, то логично было именно их развивать и запускать в производство. Действительно, процессоры «Эльбрус» довольно специфические, они отличаются от широко распространённых процессоров х86, что требует определенных усилий по созданию программного обеспечения для них. Но так как их разработка и производство полностью отечественные, то мы можем быть уверены в отсутствии “закладок” в железе, невозможности несанкционированного доступа и неконтролируемой передачи информации, что очень важно для многих приложений. В «Эльбрусах», кстати, существует защищенный режим исполнения программ, что не только защищает код от взлома, но и позволяет очень эффективно отслеживать скрытые ошибки кода.

6. А есть ли какие-то особенности написания программных приложений под архитектуру «Эльбрус»? Какие советы можете дать разработчикам, кто готов разрабатывать софт под наши процессоры?

Программное обеспечение процессоров «Эльбрус» включает большинство распространенных языков программирования – С, С++, Fortran, Java, Python, различные скриптовые языки, и компиляторы с этих языков создают эффективный код для архитектуры «Эльбрус». В качестве операционной системы на «Эльбрусах» используется обычный Линукс, так что для большинства разработчиков не будет никаких проблем при создании программ для этой архитектуры.
Для прикладных программ наша цель – чтобы разработка происходила точно так же, как на любых других архитектурах. То есть разработчик веб-сайта или системы бухучёта вообще не должен в идеале задумываться, на какой архитектуре он работает – эффективное исполнение его программы на архитектуре «Эльбрус» будет обеспечено соответствующим оптимизирующим компилятором и другими средствами разработки программ.
Если вы разработчик компиляторов – повторюсь – ответственность возрастает, так как оптимизирующий компилятор берёт на себя работу, которую на другом процессоре сделает само “железо”. То есть у компилятора на «Эльбрусах» больше гибкости и возможностей, но от этого и его разработка - сложнее.

7. Как вы думаете, сможем ли мы когда-нибудь покупать компьютеры на «Эльбрусах» в магазинах по разумной цене, запускать на них привычный софт, и при этом не чувствовать разницы с техникой других производителей?

- Если будет принято стратегическое решение о выходе на массовый потребительский рынок, потребуется еще несколько лет, ведь догонять уходящий поезд всегда тяжело. В этом году уже активно начался процесс оснащения техникой на «Эльбрусах» ключевых российских силовых ведомств, предприятий ОПК – их не менее десятка. Постоянно выходят новости по этой теме. Эти внутригосударственные инвестиции станут существенной финансовой поддержкой для разработчиков, так что появится экономическая возможность для ускоренного технологического роста. В качестве примера гражданского применения в прошлом году на форуме Технопром мы уже показывали, как работает популярная игра Майнкрафт на одном из последних ВК «Эльбрус».  В этому году возможно покажем, как работает на «Эльбрусах» другой проект, который разрабатывает наша компания – система видеоконференцсвязи OpenMeetings. Таким образом, можно сказать, что компьютеры на базе процессоров «Эльбрус» уже сейчас представляют собой обычные Линукс-системы с постоянно расширяющимся составом стандартных приложений, и их ценовая доступность будет в основном определяться массовостью выпуска таких систем. Мы верим в гражданское будущее «Эльбрусов»!

8. Вы с оптимизмом смотрите в будущее этого направления?

- Пожалуй, да. К нам все последние годы приходит молодежь, им «эльбрусовская» тема интересна. Сейчас у нас несколько студентов НГУ проходят производственную практику по этому направлению, учатся решать серьезные задачи по разработке эффективного программного обеспечения под руководством опытных инженеров. В прошлом учебном году наши талантливые магистранты не только сделали отличные дипломы, но и выступили на трех крупных российских конференциях Java-разработчиков. Наши команды «Эльбрус»-проектов растут и постепенно пополняются как молодыми сотрудниками, так и разработчиками с хорошим стажем. Скорее всего, и дальше будем расти в этом направлении. Возможно, в недалеком будущем в нашем Академпарке появится инжиниринговый центр на «Эльбрусах», где все заинтересованные разработчики смогут создавать и тестировать новые программные решения. Мы, конечно, готовы тут помогать, положение обязывает. Да, кстати, если вы посмотрите внимательно на логотип нашей компании, то сможете заметить, что две еловые макушки символизируют две вершины горы Эльбрус.

 

Фотогалерея