Пожалуй, главным результатом публикации этого обзора, — кроме фактически ознакомления общественности с первыми свободными впечатлениями от нового компьютера, — стало желание самой компании МЦСТ раскрыть побольше подробностей, устранить появившиеся недоразумения и ответить на вопросы, поднимаемые в статье и в комментариях к ней. Кое-какие из этих вопросов так фундаментальны, что заслуживают по отдельной статье любой, и потому требуют важной проработки. на данный момент же мы разглядим те из них, каковые оптимальнее укладываются в формат интервью.
Смотрите кроме этого: Звук #29 — Подкаст об экосистеме и аудиотехнике звука
С вами «Звук» – передача для тех, кто живет, трудится, отдыхает и перемещается, слушая любимую музыку либо подкасты. В этом шоу мы говорим несложными словами об технологиях и устройствах, разбираемся с правилами их работы и знакомим вас с экосистемой хорошего звука от А до Я.Мы возвращаемся к регулярным выпускам передачи, обсуждаем контекст современного потребления музыкальных возможности и композиций для погружения в тему звука.
Содержание
- Неспециализированные моменты
- продвижение и Производство
- Помощь пользователей
- Аппаратное обеспечение
- ОС
- Прикладное ПО
- средства и Архитектура разработки
- Бинарная трансляция x86-кода
- Измерение производительности
Неспециализированные моментыЧтобы верно осознавать позицию компании МЦСТ по нижеизложенным воспросам, нужно воображать себе её прошлое, планы и настоящее на будущее, — в отрыве от этого контекста кое-какие факты смогут смотреться необычно.Исторически, потребителями продукции и основными заказчиками МЦСТ были силовые структуры. объёмы и Ассортимент производства были ограниченными, любой компьютер был на учёте, каждого клиента знали в лицо, образно говоря.
При таковой модели сбыта было нужным и достаточным производить в оборот лишь прекрасно отлаженные и сертифицированные совокупности, под каковые прицельно затачивалось прикладное ПО. Любой клиент потребовал персонального подхода — квалифицированных консультаций при выборе оборудования и его последующей эксплуатации, а также с выездом сервисного инженера на место установки (в любую точку необъятной части суши, а кроме этого на море).
То имеется «махровый энтерпрайз», разве что со собственной спецификой.на данный момент МЦСТ весьма желает выйти на гражданский рынок — сперва в корпоративный сектор, что всё-таки ближе к текущему опыту, а после этого и в потребительский сегмент, другими словами к самым широким весам. Понятное дело, что в случае если бизнес-клиенты ещё хоть как-то готовы нести дополнительные траты (но не такие, само собой разумеется, какие конкретно готовы нести классические клиенты МЦСТ), особенно в то время, когда ясны преимущества выбора в пользу дорогого эксклюзива, то рядовой человек голосует кошельком за самые дешёвые товары, соглашаясь на менее высокий уровень качества продукции и иногда полное отсутствие помощи со стороны производителя.
А ещё простые люди жаждут всего нового — подавай им удвоение количества транзисторов каждые полтора года, самую свежую версию ядра, прикладных программ и системных библиотек; и не столь принципиально важно, сколько в том месте было устранено ветхих неточностей и какое количество показалось новых, как очень сильно потяжелел софт и как он сейчас тормозит на автомобилях прошлого поколения.Очевидный разрыв между желаемым и настоящим замечательно знают в МЦСТ на всех уровнях, — ни у кого нет радужных иллюзий, что возможно в один момент сорваться с места в карьер, обгоняя бывалых марафонцев и маститых спринтеров, тем более что с такими соперниками нужно, как в известной сказке, мчаться со всех ног, легко дабы остаться на месте. на данный момент на таковой рывок нет ни денег, ни производственных мощностей, ни, элементарно, кадровых ресурсов, — штат сотрудников на три порядка меньше, чем у Intel либо Микрософт, а заниматься приходится всем сходу.
Кроме того дабы охватить коммерческие либо бюджетные структуры, нужно сперва развернуть сеть дилерских ремонтных мастерских и центров, наладить совокупность технической поддержки и обучения, — на данный момент МЦСТ лишь прощупывает землю в отыскивании партнёров. Ну и, само собой разумеется, нужны денежные инвестиции: дабы иметь возможность реализовывать собственные компьютеры недорого, требуется снизить себестоимость производства, а это достижимо лишь при большом повышении количеств, — получается замкнутый круг, порвать что весьма непросто.Кроме этого присутствует познание того, что продукция широкого потребления обязана быть такой открытой, так это вероятно и целесообразно: к примеру, что в свободном доступе обязана находиться документация, установочные дистрибутивы ПО и вовремя производимые обновления для него, исходные коды этих программ, что нужна площадка для обмена и публичных консультаций опытом, учебная литература для начинающих и экспертов.
Но это также всё не появляется само собой в одночасье, а компания до тех пор пока находится в самом начале пути по завоеванию умов и сердец потенциальной клиентуры.Потому, что отказаться от ветхих привычек сложно, в особенности в то время, когда ещё нет практики ведения дел в совсем другой среде, нужно делать скидку на то, что, в то время, когда сотрудники компании отвечают на вопросы потом по тексту, то, говоря «пользователь», они обычно всё ещё имеют в виду собственного хорошего клиента, с которым имеется персональный контакт и прямой договор, а обычно ещё и дополнительное соглашение о неразглашении, — таковой клиент сам не заинтересован в публичности и знает, что может рассчитывать на любой каприз за собственные деньги. Но, как возможно видеть по многим ответам, данный шаблон уже не рассматривается в качестве единственного.
Тут также всё будет развиваться неспешно, ход за шагом.Производство и продвижениеНа каком заводе создают ЦП и КПИ? В каких количествах? Правда ли, что производство свёрнуто (приостановлено) на два года?Секрета тут нет: новые микросхемы на данный момент производятся лишь в Азии. И в случае если ставить целью всерьёз соперничать на свободном рынке, никакой альтернативы этому до тех пор пока нет.
Однако тогда появляется естественный вопрос информационной безопасности в критических применениях, но для особенной категории клиентов вероятно организовать производство на местных мощностях ограниченными партиями — с соответствующим уровнем стоимостей. Первый (и успешный) проект для того чтобы рода — процессор «Эльбрус-2СМ»: его кристаллы производятся на зеленоградской фабрике «Микрон».Выпуск микросхем не останавливается — более того, в них всегда вносятся корректировки.
Легко, по современным меркам, количества менее тысячи кристаллов в год считаются мелкосерийным производством, и заказ делается только эпизодически, круглосуточный конвейер тут не нужен.Большое количество процессоров на данном этапе идёт на внутренние потребности, — как обыденные, так и экспериментальные. К примеру, сравнительно не так давно был собран вычислительный комплекс из 32 модулей 1U по четыре процессора «Эльбрус-4С» в каждом — итого 512 ядер.
Любой, у кого имеется занимательные задачи для таковой совокупности, может обратиться с заявкой на машинное время. (Коротко о том, какие конкретно классы программ самый действенно выполняются на архитектуре E2K, и как оптимизировать собственный исходный код, будет поведано ниже, а подробнее эту тему планируется осветить в отдельной публикации.)При каких количествах производства удастся снизить цена набора «материнская плата + процессор» до приемлемого для широкого круга клиентов уровня? Как не так долго осталось ждать русский электронная индустрия будет способна обеспечить такие количества?Дабы выйти на уровень около 1000 американских долларов, нужно производить как минимум 10 тысяч готовых изделий каждый год, а двигаться ещё дальше навстречу клиенту возможно лишь при потоке порядка 100 тысяч изделий в год.
Очевидно, всё производство тогда должно быть сосредоточено в Китае, или отечественные фабрики должны отлично поработать над снижением себестоимости и удешевлением логистики производства. на данный момент все платы производства МЦСТ монтируются на русских фабриках.При каких количествах производства будет оправдан выпуск упрощённой версии процессора для 1-сокетных совокупностей — без блоков доступа и межпроцессорного взаимодействия к удалённой памяти?Кроме того 10 тысяч кристаллов в год не оправдают изменение топологии.
Скорее будет иметь суть избавиться от незадействованных выводов, что разрешит сократить площадь подложки, но в в обозримом будущем кроме того это не будет себя оправдывать.Сколько будет стоить лицензия на ОС, в случае если начнутся продажи комплектующих по отдельности?До тех пор пока что такая схема продаж не обкатана, но вероятнее будет перенят опыт сотрудников из «Альт Линукс», — для персонального применения цена точно не станет обременительной.В то время, когда ожидать готовые совокупности на базе «Эльбрус-8С»? Выяснены ли характеристики будущих процессоров?
Будет ли в следующей модели 16 ядер и тактовая частота 2 ГГц, на пример?Предсерийные образцы однопроцессорных автомобилей на базе «восьмёрки» возможно будет заметить уже этим летом. Следующий ход — маленькое повышение частоты (до 1,5 Гц) и удвоение количества вычислительных блоков с плавающей запятой, каковые являются главной движущей силой данной платформы — таковой процессор уже разрабатыается с рабочим заглавием «Эльбрус-8СВ».
Процессор с 16 ядрами планируется выпустить в 2020 году.Из-за чего совокупность программных средств и именования аппаратных такая запутанная?В то время, когда в вашем активе всего пара-тройка базисных продуктов, то разобраться в номенклатуре не образовывает труда, в особенности специалисту. на данный момент, в то время, когда спектр софта и железа расширяется, в то время, когда происходит ориентация на рядового пользователя, совокупность именований неспешно приводится к виду, понятному для неспециалиста.Серьёзное уточнение.
Упоминать обозначение «Эльбрус-2000», равно как и сокращение «E2K», в контексте современных продуктов — неправильно: официальным заглавием данной микропроцессорной архитектуры есть «Эльбрус», без всяких суффиксов. Наименование «Эльбрус-2000» было выбрано для архитектуры, которую планировали реализовывать совместно с западными компаниями в 2000 г. В самом начале 1999 г. в издании Microprocessor Report была напечатана статья с описанием архитектуры процессора «Эльбрус-2000», которая на английском смотрелась как «Elbrus-2000», а в сокращенном виде — «E2k».
Нынешняя архитектура «Эльбрус» значительно доработана по отношению к той архитектуре E2k, — это уже третья версия, — исходя из этого применение ветхого обозначения не в полной мере корректно. Помимо этого, сокращение E2K (с большой буквой «K») может трактоваться ортодоксальными компьютерщиками как 2048, что совсем уж никуда не годится.Помощь пользователейИмеется ли документация в электронном виде?
Планируется ли выкладывать документацию в неспециализированный доступ для свободного скачивания любым желающим (безотносительно факта приобретения оборудования)?Документацию возможно скачать уже на данный момент, но пока только имея ссылку, высылаемую по запросу. Но уже в ближайшие месяцы планируется запустить сайт технической поддержки и сообщества, где все данные будет лежать в открытом доступе.
Так как речь заходит о десятках документов, это займёт какое-то время.Планируется ли открывать багзиллу для публичного просмотра? Создавать FAQ, организовывать форум — сайт для открытого обмена опытом?Запрещено и открыть багзиллу, где многие тикеты содержат «высоко чувствительные» сведения. Вероятнее, для широких весов будет создана отдельная багзилла, доступная для пополнения и просмотра всеми желающими.
А ранее накопленный опыт по чаще всего задаваемым вопросам будет переработан в FAQ, что кроме этого будет выложен на новом сайте помощи. В том месте же будет и форум, вероятнее.Что по поводу публикации исходных кодов адаптированного отправки патчей и программного обеспечения в апстрим того либо иного проекта? Планируется ли принимать патчи от пользователей?
Как по поводу поощрений за отысканные уязвимости?Исходные коды не выкладывались в публичный доступ легко вследствие того что сами клиенты были не публичными, и спрос среди них на исходные коды был маленьким, а кому было вправду необходимо не из праздного любопытства — обращался с запросом и приобретал всё что нужно в частном порядке. Планируется, что для массового потребителя в обозримом будущем будет создан публичный репозиторий, куда попадёт целый заимствованный код.
Открывать собственные разработки, такие как компилятор LCC, компания не планирует, — в финише финишей, Intel C++ Compiler (а как раз его МЦСТ вычисляет своим главным соперником с точки зрения оптимизаций) также закрытый, и прекрасно при этом себя ощущает.Патчи от пользователей и так принимаются, — до тех пор пока что также в частном порядке, само собой разумеется же. Как это будет смотреться при расширении клиентской базы и всплеске внимания со стороны энтузиастов, пока представить тяжело.Отправка собственных трансформаций авторам уникальных проектов — без сомнений нужное дело, но этим кто-то обязан заниматься, к каждому проекту необходимо знать подход, разбираться в изюминках культуры сообщества.
Более посильной задачей представляется целый код в неспециализированный доступ: в случае если найдётся «посол доброй воли», готовый взаимодействовать с тем либо иным апстримом, — что ж, превосходно. До тех пор пока что у МЦСТ для того чтобы опыта нет.Аппаратное обеспечениеКак встроенный видеоадаптер задействовать в графическом окружении? Как комфортным для 2D-работы предполагается его быстродействие?Инициировать перенастройку графического стола несложнее всего было бы, запустив утилиту xorg-server.postinst.
Функции аппаратного 3D-ускорения у встроенного адаптера отсутствуют совсем, а вот простое применение приложений рабочего стола не должно вызывать никаких неудобств, — уж точно не так, как было на ветхих компьютерах. Возможно, нужно будет записать это на видео и выложить маленький ролик — вместо тысячи слов.Какие конкретно дискретные видеоплаты, кроме Radeon HD 6450 / R5 230, поддерживаются ОС?
Какие конкретно функции аппаратного ускорения дешёвы прикладным программам через имеющийся в совокупности драйвер?Поддерживается вся современная линейка Radeon, совместимая с открытым драйвером для Linux. Потому, что у nVidia в этом замысле всё совсем печально, их продукция не имеет помощи в ОС «Эльбрус» на этот момент.Чем возможно растолковать очень записи и скорости низкие показатели чтения твердотельного накопителя, не дотягивающие кроме того до номинальной полосы пропускания интерфейса SATA-2, через что он подключён?Это известное ограничение микросхемы 1991ВГ1Я, реализующей контроллер периферийных интерфейсов (КПИ).
Оптимизированный вариант контроллера (КПИ-2), в котором эта неприятность решена, будет устанавливаться в совокупности с новыми процессорами «Эльбрус-8С» и «Эльбрус-1С+».Для чего в составе компьютера «Эльбрус 401?PC» имеется жёсткий диск количеством 1 Тбайт, если он кроме того не настроен в ОС, а главный накопитель и так предоставляет много свободного пространства?Очевидное назначение твёрдого диска — хранение громадных количеств данных, что пользуется спросом текущим контингентом пользователей. То, что диск не смонтирован в совокупности — недоработка, но не значительная: кое-какие пользователи ещё и флэш-карту переформатируют под собственные потребности вместо бинарной трансляции, тут всем сходу не угодишь.Для чего помогает окраска винтового крепления твердотельного накопителя, — в качестве гарантийной пломбы либо для предотвращения самооткручивания?Вправду, краска есть в первую очередь стопором.
Накопитель откручивать возможно — гарантии это не лишает, но в случае если что-то сломается, то у сервисных инженеров появятся естественные вопросы к пользователю касательно произведённых действий.Откуда берутся идентификаторы PCI-устройств, — из-за чего код разработчика (Vendor ID) у многих набортных устройств таковой же, как у Intel?Обстоятельство совсем прозаическая — так ОС Windows в режиме бинарной трансляции несложнее ощутить себя как дома. Действительно, из-за собственной параноидальной привязки кодов активации к применяемой аппаратуре, эта «самая дружелюбная» совокупность всё равняется время от времени начинает капризничать.Где возможно ознакомиться с описанием аппаратно-программного модуля доверенной загрузки «Эшелон?Э»?Тут имеет место недоразумение: данный продукт — чисто программный, и есть только частным случаем простого МДЗ «Эшелон», созданного одноимённым научно-производственным объединением.
Это средство снабжает доверенную загрузку компьютера, контроль целостности, аутентификацию и идентификацию пользователя до передачи управления ОС.есть ли модуль удалённого управления по IPMI, предлагаемый как опция для серверов «Эльбрус-4.4», независимой разработкой, либо это готовый продукт зарубежного производства?Очевидно, это независимая разработка, но пока ещё не готовый продукт, — модуль находится на этапе отладки.Операционная системаКакая совокупность обозначения предположений употребляется для ОС «Эльбрус»?Верный ответ уже приводился в статье: номер версии записан в файле /etc/mcst_version. Та версия 2.2, которой комплектовались компьютеры из первой партии, на самом деле уже не актуальна — стабильной на данный момент есть 2.3, а на стадии релиз-кандидата находится 3.0 (с ядром 3.14).Планируется ли производить регулярные обновления, каковые бы устанавливались машинально из публичного репозитория?
Из-за чего не всё ПО, установленное в совокупности, оформлено в виде пакетов?Да, автоматическое обновление планируется, не смотря на то, что на данный момент данный процесс происходит ещё вручную по запросу. Очевидно, для этого всё ПО должно пребывать под управлением менеджера пакетов, — в случае если на данный момент где-то не так, то лишь благодаря неотлаженности процесса сборки.Не несложнее ли напрямую портировать однин из популярных Linux-дистрибутивов — к примеру, тот же Debian?Как раз этим в этот момент и занимается одна из команд.
Вправду, Debian предлагает, пожалуй, самая удобную инфраструктуру для создания производных дистрибутивов. Более того, у Debian на данный момент самый широкий комплект поддерживаемых архитектур, во всяком случае среди семейства Linux, так что создавать новые порты логичнее всего на данной базе. Но как раз процедура портирования у данного дистрибутива — не самая ровная и систематизированная, исходя из этого приходится изрядно потрудиться.
Но, в то время, когда процесс будет отлажен и автоматизирован, синхронизация с на данный момент станет [почти] незамедлительной. А вот удастся ли придать этому порту статус официального — громадный вопрос.Но список поддерживаемых операционных совокупностей не планируется сократить только каким-то одним вариантом. В первую очередь ожидается порт ALT Linux, что в представлении не испытывает недостаток.
Кроме этого ведутся работы по адаптации QNX: защищённая ОС настоящего времени «Нейтрино-Эльбрус» в каком-то виде уже трудится; подробности уточняйте у разработчиков в центре компетенции «СВД Встраиваемые Совокупности».Как трудоёмко портирование ядра Linux? Из-за чего на данный момент употребляется ядро версии 2.6.33 — не самое новое, но и в то же время не поддерживаемое как LTS?Процесс портирования ядра Linux на ту либо иную аппаратную платформу в самом деле достаточно трудозатраный, но неприятность не в однократных упрочнениях, а в том, что любой раз многое приходится затевать практически с начала, так как всё течёт, изменяется и перетасовывается.
К примеру, только-только перебрались на ядро 3.14 и начали экспериментировать с веткой 4.x — а в том месте снова всё поменялось.Вряд ли в обозримом будущем окажется добиться принятия собственного порта в мейнлайн kernel.org, в то время, когда в том месте всё весьма строго с одной стороны и достаточно хаотично с второй. Исходя из этого самая вероятной возможностью видится предоставление собственного ядра всем желающим для независимой сборки для того чтобы дистрибутива, какой они сами захотят смастерить.Какие конкретно версии ядра (default, nn, rt) для каких целей лучше применять?Для повседневных задач, разумеется, оптимальнее подходит ядро по умолчанию.
Ядро «nn» предназначено для сетевых маршрутизаторов — в том месте удешевлена обработка прерываний. Ядро «rt» может планировать работу процессов, выполняя ограничения по выделенным квантам времени в установленных пределах, что разрешает сказать о вычислениях в настоящем времени, — не значит «скоро», но значит «предсказуемо», пускай и ценой утраты производительности; при этом в совокупности в большинстве случаев остаётся трудиться лишь целевое приложение и ядро, а кроме этого минимально нужный комплект фоновых работ.Вероятен ли стремительный перезапуск [ядра] ОС без повторной инициализации оборудования?
Как ускорить запуск ОС в частности и компьютера по большому счету?Стремительный перезапуск ОС без инициализации оборудования не предусмотрен. Ускорить инициализацию оборудования возможно, во-первых, очевидными методами: к примеру, отключив либо уменьшив тайм-аут поиска серверов ATA over Ethernet, — они необходимы лишь для загрузки по сети.
Во-вторых, имеется и неочевидные на первый взор методы: к примеру, возможно отключить очистку оперативной памяти, которая в большинстве случаев выполняется в целях информационной безопасности. Ну, а ускорение запуска ОС путём отключения всех ненужных работ — в комментариях не испытывает недостаток.Прикладное программное обеспечениеДля каких целей позиционируется имеющаяся на данный момент версия Firefox 3.6, в случае если с ней не совместимы многие сайты, применяющие современные веб-разработки?Актуальной версией браузера в текущем релизе ОС «Эльбрус» есть 23.0, которая значительно идеальнее в функциональном замысле и в замысле производительности.
К примеру, тест JetStream сейчас уже удачно завершается, причём со счётом 7,8 балла — не намного ниже отметки 8,2 балла, достигаемой той же версией Firefox в режиме бинарной трансляции x86, где задействован полноценный JIT-компилятор для JavaScript.Кроме этого обкатывалась версия 31.0, но она показала себя хуже, медленнее, и её решили не производить на публику. Следующей перенесённой версией будет 44.0.Имеется ли в совокупности реализация отечественных криптографических методов (а также актуальных предположений), доступная для программ на языках C/C++?на данный момент на смену OpenSSL пришло его ответвление — LibreSSL, куда русский криптография интегрирована официально.Чем возможно растолковать низкую производительность виртуальной автомобили Java, показанную в разных тестах?Пакет OpenJDK 1.6.0 был в каком-то смысле «пробой пера» — на данный момент уже кипит работа над 1.7.0 и 1.8.0, где производительность удалось поднять в 3–4 раза, в случае если делать выводы по таким тестам, как SPECjvm2008.
Но в неспециализированном случае, само собой разумеется, будет необходимо ещё большое количество чего оптимизировать.Планируется ли портирование Mono либо .NET в рамках ОС «Эльбрус» либо иного дистрибутива?Учитывая популярность данной разработке, это фактически неизбежно. Но, принимая к сведенью происходящие в этот момент перемены в отношениях Микрософт с сообществом и неизвестное будущее проекта Mono, естественным образом появляется желание чуть-чуть подождать, в то время, когда возможности станут более чёткими, дабы не тратить время на тупиковые ветви развития.До тех пор пока же, в случае если кому-то нужно запускать дотнетовские приложения, он может воспользоваться режимом x86-трансляции.
Фактически, это одно из главных назначений разработки трансляции — обеспечить совместимость на переходный период, пока программная база ещё не стала нативной. Кстати, на данный момент команда МЦСТ деятельно трудится над увеличением эффективности трансляции приложений, применяющих подобные just-in-time компиляторы.Каковы возможности у «Эльбруса» в качестве игровой платформы, учитывая, что в современных играх практически вся нагрузка ложится на видеоплату, и замечательный процессор обычно не нужен?Этим вопросом всерьёз ещё никто не задавался.
До тех пор пока что, в случае если лишь игра не дешева в исходных кодах и не есть по-настоящему переносимой, то единственным выходом будет запуск Windows либо Steam OS в режиме бинарной трансляции, но вероятны неприятности с активацией лицензий из-за изюминок привязки к оборудованию.средства и Архитектура разработкиГде и как возможно взять подробное справочное управление по набору и архитектуре машинных руководств?на данный момент вся документация высылается по запросу. Но имеется нюанс: комплект руководств есть открытым, а вот метод кодирования руководств в командном слове — закрытая информация по историческим обстоятельствам.
Вопрос полного раскрытия архитектурных подробностей много раз пробовали решить положительно, но пока ответ не принято.Но, значительной практической неприятности это не воображает, поскольку, по точке зрения МЦСТ, информации в имеющейся документации достаточно кроме того для низкоуровневого программирования через «интринсики», а генерировать машинный код собственными силами либо кроме того писать на E2K-ассемблере — занятие ненужное практически во всех случаях, не считая очень узкого круга низкоуровневых системных процедур. Лишь компилятор способен учитывать тайминги исполнения руководств и проводить столь сложную оптимизацию, какая требуется для действенного задействования ресурсов аналогичной архитектуры.Какие конкретно виды программ (методов) возможно реализовать на E2K действеннее всего, а также по сравнению с вторыми архитектурами, снабжающими неявный параллелизм?Изначально «Эльбрус-2000» проектировался как высокопроизводительная платформа для вычислений с плавающей запятой, и отходить от данной концепции не планируется — скорее, напротив: как уже говорилось, следующим шагом по окончании «8С» будет удвоение количества вычислительных блоков вещественного типа.
Соответственно, главная стезя — это математические программы, научные и производственные расчёты. Специально для таких задач разрабатывается и оптимизируется библиотека методов EML (Elbrus math library), а у компилятора LCC имеется особенные навыки по изменению некоторых шаблонов исходного кода в вызовы данной библиотеки.Второй сильной стороной есть наличие громадного регистрового файла, — программе в любой момент времени доступно до 256 регистров, а также вероятно их автоматическое переименование.
Это открывает путь для весьма масштабных оптимизаций. К примеру, в известном обзоре на CNews фигурировал тест gostcrypt (это личная реализация от одного из клиентов МЦСТ), в котором «Эльбрус-4С» на пониженной частоте обогнал Core i7-2600 практически в два раза, — тут нет никаких подтасовок, но был сделан неверный вывод, словно бы обстоятельством тому стало отечественное происхождение метода ГОСТ 28147-89.
На самом деле секрет успеха — в успешном сочетании структуры этого метода с количественными чертями архитектуры E2K и качественными свойствами компилятора LCC по проведению глубокой оптимизации. Компилятору удалось развернуть целый цикл преобразования одиночного блока и утрамбовать его в минимально вероятный комплект командных слов, обеспечив работой все имеющиеся целочисленные блоки, — вот и оказался таковой впечатляющий итог.Как писать действенные программы для E2K на языках C/C++ и Fortran?
Имеется ли учебное пособие на эту тему?Попытка создать управление по архитектуре уже предпринималась, но авторы тогда очень сильно углубились в описание аппаратной части, полагая, что из этого материала любой читатель сможет сделать очевидные выводы, — оказалось приблизительно то же, что размещено в известной книге «вычислительные комплексы и Микропроцессоры семейства Эльбрус». Что же касается наставления для прикладных программистов, то, увы, пока что все сакральные знания сохраняются лишь в головах сотрудников, занимающихся разработкой компилятора; время от времени они делятся собственными откровениями на лекциях в МФТИ, но для оформления конспектов в виде книги ещё не созрели. Тем временем в качестве отправной точки рекомендуют почитать советы для Itanium, — концептуально эта архитектура весьма похожа на E2K.Кратко главные приёмы возможно сформулировать так.
- Не мешать компилятору: уж в случае если заявили функцию как встраиваемую (inline), то не забывайте включать её определение в любой вызывающий модуль, — по причине того, что возврат управления и вызов подпрограмм обратно являются очень дорогими операциями на «Эльбрусе». По большому счету, переход управления лишь тогда осуществляется практически безболезненно, в то время, когда подготовка к нему началась минимум за 4 такта заблаговременно, исходя из этого, к примеру, условные ветвления в несложных случаях машинально заменяются на спекулятивные вычисления.
- Помогать компилятору подсказками: помечать возможные и редко применяемые условные блоки макросами likely и unlikely, показывать ориентировочное количество итераций цикла в директиве pragma loop count, использовать двухпроходную компиляцию с профилированием, в то время, когда темперамент нагрузки неизменно однотипный.
- Применять семантически подходящие конструкции: компилятор скорее постарается оптимизировать цикл for, чем while, в особенности в случае если в нём увиден ранний выход через break.
- Избавляться от лишних зависимостей между итерациями цикла и между отдельными шагами одной итерации, — тогда у компилятора появляется шанс ещё и утрамбовать широкие команды, а кроме этого заменить скалярные вычисления на векторные. (Данный совет честен в любой ситуации, но в случае с циклами обычно вмешивается ограничение на количество разбираемых итераций.)
- Избегать заведомо негативных техник: к примеру, не применять невыровненный доступ к памяти, — хоть такое поведение и поддерживается, расплата за него значительно жёстче, чем на x86. Более того, если вы гарантируете отсутствие для того чтобы поведения в программе, то возможно включить дополнительные режимы оптимизации.
- Использовать оптимизированные функции, в то время, когда это быть может, — к примеру, упомянутую выше библиотеку EML. Как уже говорилось, компилятор сам может заменять вызовы простых функций на оптимизированные, но он не всесилен, и лучше всё делать очевидно.
Более детально и с примерами прочие тонкости и эти методы планируется осветить в отдельной статье. МЦСТ замечательно осознаёт важность распространения среди программистов «тайных техник» извлечения из «Эльбрусов» большой производительности, и собирается начать нести свет знаний, когда будет организовано его инфраструктура и сообщество.Существует ли готовый комплект примеров исходного кода на языках C/C++ с неточностями обращения к памяти, дабы показать, как разработка защищённого выполнения программ разрешает отлавливать такие неточности на этапе компиляции и на этапе исполнения?Очевидно, таковой комплект программ имеется — в составе средств регрессионного тестирования, которое проводится еженощно.
Кроме этого возможно применять примеры из коллекции SAMATE американского университета NIST. Но для наглядности (по данной теме планируется написать отдельную статью), возможно, несложнее будет написать «однострочники», каковые прицельно иллюстрируют каждую неточность в отдельности.Рассматривается ли возможность написания E2K-бэкэнда для компилятора LLVM в качестве альтернативы LCC, стремящегося быть похожим GCC?Изыскания в этом направлении проводились, конечно, но вердикт до тех пор пока был скорее отрицательным: архитектуру «Эльбрус-2000» сложно обрисовать средствами LLVM оптимальным образом.
То имеется другой компилятор возможно было бы выпустить, но генерируемый им машинный код проигрывал бы LCC по скорости работы. Но направление не вычисляют тупиковым, — быть может, что со временем бэкэнд к LLVM всё же будет реализован.Может ли LCC выводить предупреждения и ошибки по форме, принятой у GCC, дабы эти сообщения распознавались в среде разработки (к примеру, Qt Creator) соответствующим образом?На этот момент это не предусмотрено, но уже заведён тикет в багзилле.Где возможно взять комплект средств кросс-компиляции программ для E2K из рабочей среды x86?
Предусмотрен ли обратный процесс — генерирование x86-кода из среды «Эльбрус», и в случае если да, то с помощью особенной версии LCC, или простого GCC?Средства кросс-компиляции для E2K (то имеется компилятор LCC, трудящийся на x86 Linux) предоставляются по запросу. Обратный процесс в явном виде не предусмотрен: в случае если такое нужно, возможно запустить какую-нибудь x86-совокупность на «Эльбрусе» в режиме бинарной трансляции и применять имеющийся в том месте компилятор.Какие конкретно технологии виртуализации поддерживаются на платформе «Эльбрус»?Прямо на данный момент помощи нет по большому счету.
Но в скором времени покажется возможность применения контейнеров.Помимо этого, в текущем году должны завершиться работы по созданию паравиртуализованного ядра ОС и механизма помощи гипервизора KVM, а это — главный задел в архитектурно-зависимой части для развёртывания полноценной облачной инфраструктуры типа OpenStack. В то время как другие архитектуры при работе в среде Qemu/KVM опираются на полную виртуализацию аппаратуры, факультативно применяя паравиртуальные драйверы virtio для ввода-вывода и перехват привилегированных руководств при помощи самого процессора, для «Эльбруса» дорабатывается архитектурно-зависимая часть KVM, дабы обеспечить как раз паравиртуальный режим работы, в то время, когда гостевая совокупность тесно сотрудничает с гипервизором и вместо исполнения привилегированных руководств вызывает функции hypercall API.Хорошо как мы знаем, что Intel всегда совершенствует собственную архитектуру и усиливает микроархитектуру, повышая при этом производительность. Как начинается в данной части архитектура «Эльбрус»?Развитие движется в нескольких направлениях.
- Главное внимание уделяется увеличению производительности процессорного ядра для ускорения работы однопоточных приложений. Это достигается за счет повышения числа одновременно исполняемых операций (реализовано в следующей, 4-й версии совокупности команд), применения более широких регистров для операций над векторными данными (реализуется в 5-й версии), совершенствования иерархии системы памяти. При этом сохраняется совместимость с прошлыми предположениями архитектуры.
- Второе направление — это совершенствование процессора как совокупности на кристалле. По мере освоения более узких нанометровых разработок в процессорах возрастает число процессорных ядер, растет количество каналов доступа в память для сохранения сбалансированности процессора, в отдельных случаях добавляются специальные дополнительные контроллеры и графические ядра сотрудничества с периферийными устройствами.
Наконец, большую роль играется совершенствование оптимизирующего компилятора, с помощью которого удаётся извлекать параллелизм программ и трансформировать код в параллельные возможности архитектуры, — как уже много раз подчёркивалось, компилятор практически есть частью архитектуры. Резерв свойств компилятора ещё далеко не исчерпан, МЦСТ тут видит весьма широкое поле для приложения упрочнений.Бинарная трансляция x86-кодаКакие ограничения и возможности имеет бинарная трансляция?Эта тема заслуживает рассмотрения в отдельной статье, но кратко картина складывается следующая.
Трансляция не редкость двух видов — на уровне совокупности и на уровне приложения. В первом случае для гостевой ОС обеспечивается доступ ко всему аппаратному окружению компьютера, а во втором, соответственно, лишь выполняется передача системных вызовов из гостевой программы в ядро хозяйской совокупности Linux.
Это возможно сравнить с эмуляторами qemu-system-x86_64 и qemu-i386 соответственно, но транслятор не занимается эмуляцией гостевого процессора, а сходу перекомпилирует гостевой машинный код в нативные руководства собственной архитектуры. Причём преобразование выполняется многократно, неспешно увеличивая степень оптимизации для чаще всего видящихся участков кода, а результаты сохраняются в долгосрочный кэш.Транслятор уровня совокупности (неофициально он именуется «lintel» — «эль-интел») поддерживает комплекты команд x86 и x86-64, а транслятор уровня приложений («rtc», то имеется run time compiler) до тех пор пока совместим лишь с 32-битным программами, — 64-битная версия находится в стадии тестирования.
Но совместимость с архитектурой AMD64 / EM64T не свидетельствует автоматической помощи всех новых комплектов руководств, каковые возможно встретить в тех либо иных процессорах Intel / AMD, как то последние предположения SSE, AVX, AES-NI, — соответствующие знамёна в информации CPUID будут отсутствовать.Как воспользоваться транслятором уровня совокупности?Весьма легко: при запуске компьютера нужно указать флэш-карту в качестве загрузочного диска. В случае если карта была безлюдна, или пользователь сам стёр оттуда совокупность трансляции, то записать её повторно возможно в любой момент, сделав копирование образа командой dd.Транслятор уровня совокупности имеет BIOS уникальной разработки, и по окончании запуска на экране появляется привычная всем POST-последовательность, в ходе которой возможно зайти в меню настроек.
Большая часть этих настроек — самые обычные, но имеется и своеобразные. К примеру, возможно весьма гибко руководить идентификацией процессора по CPUID, меняя не лишь модели и номер семейства либо отдельные знамёна свойств, но и текстовое наименование, — это нужно для противодействия анти-конкурентному поведению программ, собранных при помощи Intel C++ Compiler.
Вторая своеобразная опция — прозрачное превращение SATA-контроллера в PATA, дабы обеспечить совместимость с более широким кругом операционных совокупностей. Но, не обращая внимания на наличие таких «чудесных палочек», работа операционных совокупностей, установка которых производилась на настоящей x86-машине, не гарантируется, — особенно это относится Windows с её привязкой лицензии к оборудованию и трепетным отношением к драйверу системного диска.Как воспользоваться транслятором уровня приложений?Ещё легче: запустив программу трансляции, передав ей путь к гостевому приложению и путь к корневому каталогу воссоздаваемого окружения.
Целый вопрос в том, как вначале взять образ этого окружения. До тех пор пока что штатно поставляется лишь окружение x86-версии совокупности «Эльбрус», но допускается применение и вторых. В случае если клиент затрудняется организовать образ нужной совокупности самостоятельно, эксперты МЦСТ смогут оказать нужную помощь.Из-под запущенного гостевого приложения (к примеру, коммандного интерпретатора) пользователь может осуществлять запуск других гостевых программ — совсем прозрачно.
В один момент времени возможно запущено сходу пара экземпляров транслятора, и любой экземпляр может трудиться в своём окружении; исходя из этого, к примеру, возможно опробовать одну и ту же версию браузера в различных дистрибутивах, либо, напротив, различные предположения браузера в одной совокупности (пример надуманный, само собой разумеется, но сущность раскрывает).Возможно встретить утверждение, что в режиме бинарной трансляции кое-какие бенчмарки начинают трудиться кроме того стремительнее, чем изначально собранные для E2K. Для каких классов программ и при каких условиях такое вероятно?Такое вправду быть может, к примеру, в то время, когда нативная версия JVM либо JS-движка может лишь трактовать пользовательский код, а сравниваемая с ней x86-версия располагает полноценным JIT-компилятором.
При этом, кроме того не смотря на то, что имеет место многократная трансляция, — сперва выбранный для оптимизации байт-код компилируется в машинный язык x86, после этого ещё через какое-то время он перекомпилируется в E2K (причём трижды, по одному разу на любой уровень оптимизации), — всё равняется итоговый выигрыш от компиляции перевешивает.Что касается нативных программ на языках C/C++, то тут также существует логическое объяснение, кроме того целых два. Во-первых, хоть компилятор LCC и проделывает титаническую работу по оптимизации генерируемого кода, никто не гарантирует, что какой-нибудь компилятор для x86, особенно коммерческий, не справится лучше в том либо другом частном случае.
Во-вторых, более возможно, что прекрасно оптимизированная программа для x86 попросту была собрана с учётом предварительного профилирования, в то время как компилятору LCC скормили обнажённые исходники без подсказок. Но при других равных, само собой разумеется, нативные программы должны трудиться как минимум не медленнее показываемых, — в случае если это не так, нужно отправлять баг-репорт разработчикам LCC.Измерение производительностиПо точке зрения экспертов МЦСТ, кое-какие популярные ранее бенчмарки не смогут по-настоящему раскрыть потенциал ни одной из существующих сейчас платформ.
Забрать тот же UnixBench — при всём уважении к его почтенному возрасту, он в далеком прошлом устарел и одинаково не годится для любых операционных систем и современных процессоров. Оба его процессоро-зависимых теста, Whetstone и Dhrystone, фактически не распараллеливаются и не подлежат хоть сколь-нибудь значительному дополнительному исполнению — хоть на архитектурах с явным параллелизмом, хоть с неявным. А остальные тесты по большому счету «ни о чём», вместо них лучше применять что-то более своеобразное.
Единственное преимущество UnixBench — кросс-платформенность, потому его и применяют до сих пор.Не стоит кроме этого упускать из виду могучую силу профилирования. К примеру, показавшиеся многим подозрительно высокими результаты теста 7-Zip в обзоре CNews — это не обман, а следствие двухпроходной компиляции. Второй вопрос, как такая оптимизация нужна в неспециализированном случае, то имеется на произвольных входных данных.
По данной причине вряд ли имеет суть профилировать все компоненты теста Pgbench, — так как на настоящих данных производительность Postgresql может оказаться совсем другой. Но в случае конкретно с 7-Zip перепроверить достаточно легко: нужно совершить ещё один тест, подав на вход коллекцию разнообразных файлов.
Неприятность лишь в том, что в случае если файлы не стандартизированы, то повторить тест аналогичным образом у любого желающего не окажется, и доверия к опубликованным итогам будет ещё меньше.направляться отдавать себе отчёт, что синтетические бенчмарки часто пишутся с прицелом на определённую архитектуру (а также по причине того, что их авторы привыкли так мыслить), или подгоняются под определённое сочетание компилятора и аппаратуры. К примеру, знаменитый тест SPECcpu декларирует непредвзятость и объективность, но в исходных кодах версии 2006 возможно встретить комментарии, что тот либо другой костыль добавлен специально для Intel C++ Compiler.
Да и как тут не заподозрить влияние большого вендора, в то время, когда из 36,6 тысяч опубликованных результатов на долю его продукции приходится 90 % записей?Настоящие прикладные программы — также не неизменно показатель, по причине того, что самые критичные участки смогут быть либо полностью написаны на ассемблере x86, или содержать большое количество обращений и ассемблерных вставок к особенным функциям (интринсикам), чему OpenSSL наглядный пример. Получается, что вылизанный до блеска машинный код сравнивается с реализацией на языке большого уровня, главное назначение которой — быть эталонной, а не оптимальной.Исходя из этого предложение к читателям: давайте совместно подумаем, какие конкретно тесты — неестественные либо приближенные к судьбе — возможно совершить, дабы заметить, как «Эльбрус» силён в релевантных для него задачах.
Не в обязательном порядке, дабы это готовься программы, в особенности что касается математических вычислений, поскольку, скажем, умножение матриц — оно и в Африке умножение матриц: сложность задачи однообразна, выполняется ли она оптимизированными библиотеками EML, BLAS / LAPACK либо самописной функцией. Собственные идеи оставляйте в комментариях.Создатель высказывает признательность сотрудникам МЦСТ за подробные и занимательные разъяснения.
Случайная статья:
El’hard №3. Эльбрус 801-РС в работе
Похожие статьи:
-
Обзор и сравнительное тестирование пэвм «эльбрус 401?pc». часть третья — средства разработки
Продолжаем обзор нового отечественного компьютера. По окончании краткого знакомства с изюминками архитектуры «Эльбрус», разглядим предлагаемые нам…
-
Обзор и сравнительное тестирование пэвм «эльбрус 401?pc». часть первая — аппаратное обеспечение
Сравнительно не так давно у нас проездом побывал увлекательный гость — отечественный ПК с 4?ядерным процессором «Эльбрус» уникальной архитектуры,…
-
Наушники monster dna: сравнительный обзор на фоне beats solo hd
Возможно, тяжело отыскать человека, что бы не слышал о наушниках Beats by Dr.Dre. Больше того, практически нереально отыскать равнодушного к ним. В…