Ещё в мае 2022 года я переориентировал пару команд в Google на разработку полностью гомоморфного шифрования (вот объявление об этом в рассылке). С тех пор я участвовал в работе над многими проектами в этой области, в частности, руководил поддержкой на github.com/google/fully-homomorphic-encryption – это опенсорсный ПГШ-компилятор для C++. В этой статье даётся вводная информация о том, как при помощи этого инструмента компилировать программы с расчётом на ПГШ. Также пробежимся по тому, из чего этот компилятор состоит.
Рубрика «оптимизация» - 3
Компилятор с полностью гомоморфным шифрованием от Google
2023-02-19 в 9:36, admin, рубрики: c++, FHE, компилятор, Компиляторы, криптография, оптимизация, Программирование, шифрованиеПерелив ковша
2023-02-14 в 7:01, admin, рубрики: Блог компании Группа НЛМК, завод, инженерные системы, ковш, оптимизация, руда, управление проектами, цехРаньше около 60 % ковшей по 300 тонн составлялось из четырёх маленьких ковшей, причём четвёртый использовался только частично. То есть где-то получалось скомбинировать что-то вроде 90 + 110 + 98, и это был хороший годный ковш на 298 тонн. А где-то это было 90 + 82 + 85 + 43 тонны из следующего ковша, которому не повезло.
Казалось бы, это задачка, которая решается на школьном уроке информатики за 15 минут, но есть пара нюансов с исходными данными:
Небольшие сложности с получением данных
Плюс ещё пара особенностей производства. Так что сейчас я расскажу, как непросто внедряются в реальный мир даже такие простые модели.
Читать полностью »
Сортировка слиянием — не так просто, как кажется
2023-02-03 в 8:28, admin, рубрики: .net, C#, Unicode, Алгоритмы, внешняя сортировка, оптимизация, Программирование, сортировка слияниемВ одной конторе соискателю на позицию Senior C# developer выдали тестовое задание: отсортировать файл со строками определенного формата.
Требования такие:
-
Формат строки: число, точка, пробел, далее любые символы до конца строки.
-
Порядок сортировки — сначала сортируем текстовой части строки, потом по числу если текстовые части совпадают.
-
Кодировка — UTF-8.
-
Размер файла — 100гб - гарантированно больше объема ОП.
-
Должно отработать за 1 час на машине проверяющего, вряд ли там будет супер-быстрый SSD и огромное количество оперативной памяти.
Js, трюки, наблюдения, бенчмарки и как Лиса уничтожает Хром. Я протестировал всё, что вам было лень
2023-01-24 в 9:00, admin, рубрики: Google Chrome, javascript, Mozilla Firefox, ruvds_статьи, Блог компании RUVDS.com, браузеры, высокая производительность, Клиентская оптимизация, оптимизацияРазные трюки я тестировал на Google Chrome 107.0.5304.107 и Mozilla Firefox 107.0 на Windows 10.
Чтобы результаты всегда были железно воспроизводимыми, я отключил все С-State’ы, ядра зафиксировал на 5 ГГц.
У меня 9900К, это Coffee Lake c AVX256, какие оптимизации применит Jit для вашего процессора — я не знаю, результат на вашем компьютере может отличаться от моего, в т.ч. из-за микроархитектуры процессора.
Скорость парсинга кода тоже входит в бенчмарк, поэтому браузер с быстрым парсером будет впереди.
Читать полностью »
Всё меняется, когда твой софт повышает безопасность производства
2023-01-10 в 7:01, admin, рубрики: Блог компании Группа НЛМК, завод, инженерные системы, оптимизация, производство, разработка, управление проектами, цехЕсли вы знакомы со спецификой «суровых производственных мужчин», то знаете, что от них это звучит примерно так же, как «тыквенный смузи и веганский стейк, пожалуйста», — ещё два года назад мы о таком проявлении доверия к ИТ со стороны производства даже мечтать не могли. А тут оказалось, что им нужен инструмент, чтобы контролировать износ сегментов УНРС (установки непрерывной разливки стали), потому что это не только убирает рутину, напрямую влияет на качество продукта — слитков стали, но и снижает потенциальный риск прорыва сегмента с расплавом.
Итак, знакомьтесь, вот один из ручьёв УНРС:
Сверху на УНРС приходит ковш, снизу выпадает огромный слиток стали — сляб. Если вы думаете, что достаточно просто залить сталь из ковша в формочку, то нет. Надо, чтобы всё это равномерно остыло, иначе внутри будут раковины, трещины и другие неприятности. Поэтому процесс такой: сверху буфер, бассейн-накопитель для жидкой стали, дальше каскад сегментов-обработчиков. Сталь проливается вниз, а каждый сегмент охлаждает её. В бассейн подаются ковши с расплавом, которые его наполняют.
Самое опасное в УНРС — не уследить за износом какого-то одного из сегментов, по которому идёт расплав, постепенно превращаясь в сляб. И оказалось, что можно свести такую вероятность к нулю, если избавиться от кучи отдельных бумажных документов и автоматизировать контроль.
Технологи хотели от нас предельно простого работающего решения, чтобы они в каждый момент очень чётко представляли себе статус каждого узла машины. Никакой математики. Никакого дата-майнинга. Никаких нейросетей. Никаких сложных научных исследований.
Сейчас покажу результат.
Читать полностью »
Как сделать билд минимального размера в Unity?
2023-01-05 в 7:00, admin, рубрики: unity, оптимизация, оптимизация анимаций, оптимизация веса приложения, оптимизация кода движка, оптимизация моделей, оптимизация размера сборки, оптимизация текстур, размер сборки, разработка игр, Разработка под AR и VRВсех с Новым Годом! Меня зовут Григорий Дядиченко, и я технический продюсер. Размер билда. Сегодня хотелось бы поговорить о нём и составить некий чек-лист, который полезно проходить перед выкладкой проекта. Если вам интересно, как можно инструментами Unity уменьшить вес сборки — добро пожаловать под кат!
Как мы ищем дефекты оборудования ультразвуковыми микрофонами
2022-12-13 в 7:01, admin, рубрики: Блог компании Группа НЛМК, завод, звук, инженерные системы, оборудование, оптимизация, производство, ремонт, ультразвук, управление проектами, шумГде-то год назад на производстве ВИЗ-Сталь мы решили проверить, можно ли с помощью поиска ультразвуковых аномалий определить, что происходит с агрегатом в тот момент, когда он ещё только собирается начать ломаться.
Решение выглядит вот так:
На фото вы видите микрофонную решётку с камерой в середине, способную построить акустическую карту пространства. Решётка подключается к ноутбуку, где уже проводится уже анализ звука.
Результаты получились очень интересные.
Читать полностью »
Многопоточность на фронте: абсурд или прекрасное архитектурное решение?
2022-11-27 в 22:48, admin, рубрики: github, vue, workers, архитектура, браузеры, будущее веба, высокая производительность, многопоточность, оптимизация, Программирование, Разработка веб-сайтов, фронтендВеб-сайты уже давно перестали напоминать простые листы с текстовой информацией. Сейчас это полнофункциональные приложения, порой с очень сложной и тяжелой логикой. А чем больше логики и чем сложнее она становится, тем сильнее сайт начинает замедляться, что, естественно, не нравится пользователям. Сейчас это решают разными способами, например с помощью ленивой подгрузки, а более рисковые пробуют применять микрофронты или виджетные системы. Однако есть еще один вектор, на который пока никто не обращает внимания: использование многопоточности в браузере.
Выжимаем все соки: PGO Оптимизация ядра Linux
2022-11-22 в 9:00, admin, рубрики: linux, linux kernel, ruvds_статьи, Блог компании RUVDS.com, высокая производительность, высоконагруженные системы, Компиляторы, Настройка Linux, оптимизация, ПрограммированиеСложность вычислительных задач и систем растёт с каждым днём. Для бизнеса ускорение кода даже на пару процентов даёт улучшение производительности, заметное снижение издержек и уменьшение задержки(latency). В первую очередь это касается мобильных и встраиваемых систем, высоконагруженных серверов, научных вычислений и 3D-графики. Так был разработан относительно перспективный и молодой метод оптимизации — Profile-Guided Optimization, далее просто PGO-оптимизация. Данный метод эффективно используют такие известные компании, как Google, Mozilla Foundation, Intel, Oracle, IBM и другие. Практически ни один современный веб-браузер не обходится без PGO-оптимизации.
Не так давно компанией Google был предложен набор патчей, включающий PGO-оптимизацию в ядре Linux. Мною был протестирован этот набор патчей в работе и доработан. Мне хотелось бы рассказать об этом методе оптимизации ядра Linux, о том, с какими трудностями можно столкнуться, и как их решить.
Если вас заинтересовала эта тема, вам интересно развитие технологий и тренды крупных компаний, то добро пожаловать под кат.
Читать полностью »