эльбрус
Архиватор HA на «Эльбрусе»
Мы тут «Эльбрус» решили оживить, который был куплен несколько лет назад для одного из проектов. Проект закончился и компьютер с тех пор лежал на складе.
Внутри стоит восьмиядерный процессор
Я, чтобы прикинуть его производительностью, решил попробовать повторить на нём свой недавний эксперимент — скомпилировать архиватор ha и засечь время, — за сколько он на этой машине сожмёт «Дум».
Там довольно старая операционка стоит с компилятором gcc 7.3.0 и нет cmake. Пришлось переписать компиляцию на make и компилировать тем, что есть. Наверное новый компилятор соптимизировал бы код лучше, но взять его некуда — надо переставлять операционную систему, а это целая история.
На «Эльбрусе» «Дум» сжался за 18,77 секунды против 4,3 секунды на моём ноутбуке с M3 Max. Разница более чем в четыре раза. Я даже не знаю — много это или мало. Надо, наверное, посмотреть
ИИ и «Эльбрус»
Прочитал свежую новость о том как ребята из «Гугла» при помощи алгоритмов искуственного интеллекта ускорили сортировку. На коротких последовательностях ускорение там достигает 70%:
AlphaDev’s newly discovered algorithm achieves a 70% increase in efficiency for sorting short sequences of elements and approximately 1.7% for sequences surpassing 250 000 elements, as compared to the algorithms in the C++ library.
Казалось бы слово «коротких» портит всю малину (на больших там не такие выдающиеся цифры), но это тоже полезно —
Отметим так же, что задачи сортировки очень широко распространены в программировании и естественный интеллект много сделал для того, чтобы их оптимизировать — эта область алгоритмов пользуется повышенным вниманием, но ИИ всё равно нашёл что тут улучшить.
В этой связи мне вспомнился многострадальный процессор «Эльбрус» со своей неоднозначной архитектурой VLIW, которую ещё недавно с удовольствием многие пинали.
Особенность такой архитектуры в том, что мы упрощаем процессор — убираем оттуда блоки динамического управления распараллеливанием кода. Предполагается, что для таких процессоров эта работа должна производится на этапе компиляции — код параллелится статически, раз и навсегда указывается как объединятся инструкции в каком порядке и где они будут выполняться.
Такой упрощённый процессор дешевле разрабатывать и производить, ну и компилятор дорабатывать проще процессора — новая версия не требует запуска новой производственной линии.
Проблема в том, что такой умный компилятор пока написать не удаётся и вряд ли удастся, если использовать традиционные методы, применяемые в разработке компиляторов. Слабое звено тут человек — с каждой итерацией всё сложнее придумывать и добавлять новые оптимизации, да ещё и так, чтобы не сломать всё остальное.
Но если привлечь к этому ИИ, наверняка станет веселее. Не вполне понятно пока когда, но однажды точно станет. Пока реализации алгоритмов искусственного интеллекта недостаточно проворны для этого, но может быть через несколько лет кожаные совместно с коваными достаточно всё оптимизируют, чтобы компилятор под такой процессор работал с достаточной скоростью.
Совсем не факт, конечно, что такая стратегия выгоднее традиционной,
X Window
В начале года мы для работы купили «Эльбрус» — посмотреть, нельзя ли портировать серверную часть нашего продукта на отечественную платформу. Портировать оказалось можно, всё заработало, но недавно родилась мысль поднять там же интерфейсные тесты, чтобы убеждаться, что и клиентская браузерная часть там тоже работает.
Как выходят из положения наши тестеры, я не знаю, тревожить в субботу по такому пустяку никого не хочется, но посмотреть
Всего три шага: на «Мак» ставим «XQuartz», запускаем его, потом логинимся на удалённую машину по ssh
ssh -XYC -c chacha20-poly1305@openssh.com пользователь@сервер
и в командной строке на удалённой машине запускаем нужное графическое приложение (firefox в моём случае). То ещё
«Эльбрус»
Судя по тому, что я слышу от коллег по айти, термин «импортозамещение» всем уже набил оскомину — настолько много публикуется в последнее время информации по тому что и как наша страна собралась импортозамещать. Долгое время у меня не было позиции по этому поводу, но недавно она появилась.
Хотя я по роду занятий сталкивался с импортозамещением софта, отечественное «железо» до недавних пор казалось понятием из мифов —
Но вот недавно оказалось, что отечественные процессоры вполне можно пощупать. Да, пока за невменяемые деньги (по причине мелкосерийного производства), но если очень хочется, то вполне можно прикупить себе «Эльбрус» или «Байкал» по цене подержанного автомобиля.
Немного смешно, что «Эльбрус» нам прислали в деревянном ящике, но я так понял, это обрешётка транспортной компании. Вряд ли производитель отгружает свои компьютеры в таком виде. Учитывая сколько народу сомневается в самой идее отечественных процессоров и их существовании, выглядит как стёб.
Внутри присланного ящика обычный чёрный китайский корпус «Cooler Master» и куча бумажных инструкций, написанных отборнейшим канцеляритом. По всему видно, что писалось для армии, цитировать куски не буду, но но при чтении некоторых пассажей хочется вытянуться в струнку и отдать честь.
Не знаю почему, но после включения я испытал почти детский восторг — оно работает! и даже неплохо! — тормозов не увидел, впрочем ничего особенно тяжёлого запустить пока не успел.
На борту «Линукс» — «ЭльбрусОС», с довольно обычным набором программ — браузеры, офисный пакет, компиляторы, привычные интерпретаторы и прочее. Из того, что успел заметить в командной строке, есть Постгрес, ПХП, Пайтон, Мемкэш, СупервизорДи и нету уже ставшего привычным systemd.
В общем, когда это импортозамещение наконец обрело физическое воплощение, мой скептический нейтралитет сменился
На мой взгляд, такие сдвиги необходимы — запустить сразу производство всего мы не осилим, начинать придётся с малого, но если и этим не заниматься, считая такие шаги незначительным, то ничего своего никогда и не появится. А я хотел бы, чтобы появилось. Не могу точно сказать почему, надо над этим поразмыслить, но хотел бы — это точно.
99 бутылок: Эль-76
65.
Язык процедурный, как и следовало ожидать, но с обработкой исключений, который тут называются «ситуациями». Довольно необычно.
% Песня о пиве 99.l76
программа
процедура пиво = проц(ф32 бутылок)
начало
если бутылок = 0 то
печатьмс(стр8 "no bottles")
инес бутылок = 1 то
печатьмс(стр8 "1 bottle")
иначе
печать(бутылок);
печатьмс(стр8 " bottles")
все
конец;
ф32 бутылок;
для бутылок от 99 вниздо 1 цикл
пиво(бутылок);
печатьмс(стр8 " of beer on the wall, ");
пиво(бутылок);
печатьмс(стр8 " of beer.");
печатькс();
печатьмс(стр8 "Take one down and pass it around, ");
пиво(бутылок - 1);
печатьмс(стр8 " of beer on the wall.");
печатькс();
печатькс()
повторить;
печатьмс(стр8 "No more bottles of beer on the wall, no more bottles of beer.");
печатькс();
печатьмс(стр8 "Go to the store and buy some more, 99 bottles of beer on the wall.")
конецТем не менее, программа запускается и выводит задуманное, хотя могла бы выглядеть менее уродливо, будь у меня компилятор, реализующий