Сальса, румба, капоэйра, яркие костюмы, энергичная бразильская музыка — в SAP Digital Space проходит бразильский карнавал. Продакты, управляющие и директора IT-компаний несколько минут назад слушали как захватывать рынки, строить программу обучения и анализировать данные, и вот они подтанцовывают в такт музыке, фотографируются и улыбаются. Так завершился Product Fest, последняя конференция Онтико в 2019 году. Это значит, что пришло время подвести итоги: осознать, что произошло, посмотреть назад, вспомнить интересные моменты и провести ретроспективу.
Рубрика «высокая производительность» - 26
Бразилия, темная магия, Mortal Kombat, Марс и 15000 человек. Итоги года Онтико
2019-12-30 в 10:32, admin, рубрики: devopsconf, frontendconf, highload, inothings++, teamleadconf, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, итоги года 2019, конференции, Новый Год, Разработка веб-сайтовПочему Rust должен стать функциональным языком программирования
2019-12-28 в 10:56, admin, рубрики: Rust, scala, zero-cost, высокая производительность, Программирование, функциональное программированиеПривет!
Начав изучение Scala, я сразу столкнулся с тем, что функциональная реализация простейшего алгоритма быстрой сортировки работает радикально медленней и потребляет существенно больше памяти, чем аналогичная императивная реализация. При этом никто не спорит, что функциональный код более краток, выразителен, и устойчив к ошибкам. Переписав оба примера на Rust, я обнаружил несколько важных вещей, которыми и хочу поделиться. Подробности под катом, а здесь приведу лишь краткие выводы:
- Для императивной реализации — выигрыш от Rust получился всего 20 %. Это означает, что JVM вплотную приблизилась к нативной производительности, и тут уже нечего улучшать.
- Для функциональной реализации — Rust оказался быстрее в 4.5 раза, потребление памяти снизилось в 5.5 раза, а отсутствие сборщика мусора сделало программу более стабильной (меньше разброс показателей). Это интересно для тех, кто хочет писать быстрые функциональные программы.
- Концепция единственного владельца данных (и единственной мутабельной ссылки), принятая в Rust, очень близка концепции иммутабельности, в результате чего функциональные алгоритмы, основанные на неизменяемости, рекурсии и копировании, легко ложатся на Rust практически без переписывания, тогда как императивные алгоритмы заставляют редизайнить код, учитывать мутабельность ссылок, времена жизни, и т.д.
Вывод — Rust как будто специально создан для ФП, хотя возможности его синтаксиса пока не дотягивают до Scala.
Читать полностью »
Делимся опытом, как показывают себя SSD в рамках RAID и какой уровень массива выгоднее
2019-12-27 в 12:16, admin, рубрики: Kingston, raid, raid контроллер, SSD-накопитель, Блог компании Kingston Technology, высокая производительность, контроллер, Накопители, накопитель, серверное решение, хранение данных, цодВ прошлом материале мы уже рассмотрели вопрос о том “Применим ли RAID на SSD” на примере накопителей Kingston, но сделали это только в рамках нулевого уровня. В текущей статье мы разберем варианты использования профессиональных и домашних NVMe-решений в самых популярных типах RAID-массивов и расскажем о совместимости контроллеров Broadcom с накопителями Kingston.
Джедайская техника уменьшения сверточных сетей — pruning
2019-12-27 в 7:10, admin, рубрики: cnn, convolutional neural network, CUDA, deep learning, eco, gpu, keras, machine learning, neural networks, Nvidia, optimization, pruning, python, speedup, TensorFlow, tensorrt, yolo, высокая производительность, искусственный интеллект, Исследования и прогнозы в IT, машинное обучение
Перед тобой снова задача детектирования объектов. Приоритет — скорость работы при приемлемой точности. Берешь архитектуру YOLOv3 и дообучаешь. Точность(mAp75) больше 0.95. Но скорость прогона всё еще низкая. Черт.
Сегодня обойдём стороной квантизацию. А под катом рассмотрим Model Pruning — обрезание избыточных частей сети для ускорения Inference без потери точности. Наглядно — откуда, сколько и как можно вырезать. Разберем, как сделать это вручную и где можно автоматизировать. В конце — репозиторий на keras.
Нужно ли создавать RAID-массив из SSD и какие контроллеры для этого нужны
2019-12-26 в 12:17, admin, рубрики: Kingston, raid, raid контроллер, SSD-накопитель, Блог компании Kingston Technology, высокая производительность, контроллер, Накопители, накопитель, серверное решение, хранение данных, цодПривет! В этом материале мы расскажем, стоит ли организовывать RAID-массивы на базе твердотельных решений SATA SSD и NVMe SSD, и будет ли от этого серьезный профит? Мы решили разобраться в этом вопросе, рассмотрев виды и типы контроллеров, которые позволяют это сделать, а также сферы применения таких конфигураций.
Когда пасует VACUUM — чистим таблицу вручную
2019-12-25 в 17:15, admin, рубрики: dba, explain, postgresql, sql, sql tips and tricks, truncate, vacuum, Администрирование баз данных, Алгоритмы, базы данных, высокая производительностьVACUUM может «зачистить» из таблицы в PostgreSQL только то, что никто не может увидеть — то есть нет ни одного активного запроса, стартовавшего раньше, чем эти записи были изменены.
А если такой неприятный тип (продолжительная OLAP-нагрузка на OLTP-базе) все же есть? Как почистить активно меняющуюся таблицу в окружении длинных запросов и не наступить на грабли?
О проблемах транслятора Python и переосмысление языка
2019-12-24 в 11:43, admin, рубрики: cpython, python, вывод типов, высокая производительность, Компиляторы, компиляция, мнение, ооп, Параллелизм, Программирование, статическая типизация— Сколько нужно архитекторов, чтобы реализовать язык программирования?
— Сто. Один будет писать реализацию, а 99 — говорить, что могут сделать лучше.
В этой статье я хочу затронуть не столько сам язык, сколько детали реализации CPython и его стандартной библиотеки, которые гарантируют, что у вас не будет никаких простых способов сделать приложение на питоне ни многопоточным, ни быстрым, ни легко поддерживаемым, и почему было создано столько альтернативных реализаций (PyPy, Cython, Jython, IronPython, Python for .NET, Parakeet, Nuitka, Stackless, Unladen Swallow), половина из которых уже умерла, и вряд мало кто понял, почему у них не было шансов победить в борьбе за выживание против других языков. Да, есть GDScript, который призван решить проблемы с производительность, есть Nim, который призван решить вообще все проблемы, не обязывая при этом пользователя чрезмерно явно объявлять типы. Однако, учитывая огромную инертность индустрии, я осознаю, что в ближайшие 10 лет новые языки точно не займут значимой ниши. Однако, я верю в то, что питон возможно сделать эффективным, изменив стиль написания кода, по большей части сохранив оригинальный синтаксис, и полностью сохраняя возможность взаимодействия кода нового и старого стиля. Я буду концентрироваться на проблемах CPython, а не ближайшего его конкурента, PyPy, поскольку PyPy на самом деле прыгает вокруг всё тех же проблем CPython.
5G и облачные игровые сервисы — тестируем, как это работает в Москве
2019-12-24 в 11:29, admin, рубрики: 5G, высокая производительность, игры, Игры и игровые приставки, облачные сервисы, сотовая связь
В 2020 году сети пятого поколения, судя по всему, станут во главе угла всей сферы мобильной связи. В 2019 году поставщики электроники начали поставлять на рынок 5G модули связи и устройства, в которых эти модули уже работают. Кроме того, 5G-сети постепенно разворачиваются в ряде стран, включая США, Россию, Китай и Европу.
Новые технологии обеспечат новый виток эволюции сферы развлечений. В первую очередь это игры. За последние полгода на глаза попалось несколько статей, отечественных и зарубежных, где говорилось, что 5G позволит игрокам получать доступ к игровому контенту везде и всюду, на любых платформах, благодаря облачному геймингу. Мне захотелось проверить, как это работает сегодня.
Читать полностью »
Реактивное программирование, стоит ли бросать все и нестись навстречу мечте
2019-12-24 в 8:02, admin, рубрики: java, reactive programming, sarcasm, высокая производительность, ненормальное программирование, Программирование, функциональное программированиеЕще одна статья про реактивное программирование. И только не надо на этой строчке закатывать глаза и томным голосом говорить вслух — "Ну что еще ты можешь мне рассказать про реактивное программирование… а?". Она немного отличается от кучи других, написаных словно под копирку, поэтому некоторые вещи в ней могут показаться… странными или даже совершенно неуместными, как сортирный юмор.
Совершенно не важно, знаешь ли ты наизусть reactive manifesto, присутствует ли в твоем утреннем кофе бекпрешур, трогаешь ли ты вот этими вот своими ручками всякие паблишеры и сабскрайберы или пишешь старый добрый синхронный, блокирующийся код. А может быть только недавно, кто-то своим откровенно рекламным докладом про светлое будущее и потоковый оргазм (ну или струйный, тут тонкости перевода решают все), от использования одной из реактивных библиотек конечно-же, зажег в твоих глазах интерес к новой технологии.
Будет интересно.
Включаем поддержку NVMe на старых материнках на примере Asus P9X79 WS
2019-12-19 в 20:34, admin, рубрики: AMI, NVMe, UEFI, x79, высокая производительность, Накопители, Настольные компьютеры, старое железо, хранение данныхПривет! В голову мне закралась мысль, и я ее думаю. И придумал. Все дело в жуткой несправедливости производителя, которому абсолютно ничего не стоило добавить модули в UEFI Bios для поддержки загрузки с NVMe через переходники на материнках без слота m.2 (что, к стати, без вопросов реализовано китайцами на материнках HuananZhi). Неужели не возможно — подумал я и стал копать. Нарыл кучу нерабочих советов, пару раз окирпичил материнку, но я добился своего. В этой статье я почерпнул львиную долю полезной информации. Но и тут достаточно много подводных камней. Например совершенно не ясно в какой индекс записывать модули. Итак, начнем модифицировать наш биос. Внимание! Данный материал применим ТОЛЬКО к AMI Aptio Bios и ни к одному другому, так что если у вас не оно — смело проходите мимо.
Читать полностью »