Как стать автором
Обновить
95.63

Высокая производительность *

Методы получения высокой производительности систем

Сначала показывать
Порог рейтинга
Уровень сложности

Небольшая компания представила процессор с 900 тыс. ядер. Что это за чудо технологий?

Время на прочтение 3 мин
Количество просмотров 3.4K

О компании Cerebras на Хабре писали несколько раз, чаще всего с упоминанием того, что она создала самый большой в мире процессор. И сейчас та же ситуация — она повторила свой рекорд, разработав гигант с 900 тыс. вычислительных ядер. Конечно, это чип не для обычных пользователей, а для работы в отрасли искусственного интеллекта. Что это за процессор и на что он способен? Подробности — под катом.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 6

Новости

Разработка высоконагруженного игрового WebSocket сервера на Kotlin, Webflux с поддержкой BattleRoyale/Matchmaking

Уровень сложности Сложный
Время на прочтение 20 мин
Количество просмотров 4.7K

Всем доброго времени суток. Некоторое время назад мною была написана статья, где я детально описал процесс разработки демо игрового вебсокет сервера. На этот раз, я хотел бы поделиться более усовершенствованным и оптимизированным материалом на Kotlin и реактивном стеке.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 1

SQL HowTo: один индекс на два диапазона

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 2.7K

В прошлой статье я показал, как условие с парой однотипных неравенств, плохо поддающееся индексации с помощью btree, можно переделать на эффективно gist-индексируемое в PostgreSQL условие относительно диапазонных типов, а наш сервис анализа планов запросов explain.tensor.ru подскажет, как именно это сделать.

Но что делать, если неравенств у нас не два, а целых четыре, да еще и с разными типами участвующих полей? Например, для целей бизнеса это может быть задачей вроде "найди мне все продажи за декабрь на сумму 10-20K", что на SQL будет выглядеть примерно так:

dt >= '2023-12-01'::date AND dt <= '2023-12-31'::date AND

sum >= 10000::numeric AND sum <= 20000::numeric

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 7

От идеи до сервера на Mac mini M2 Pro: как мы запускаем новые продукты

Время на прочтение 5 мин
Количество просмотров 5.4K

Меня всегда интересовало, как создают новые гаджеты, автомобили, самолеты и форматы домов. Сейчас я в команде выделенных серверов Selectel и сам участвую в разработке новых продуктов. Под катом делюсь опытом и рассказываю, откуда мы черпаем идеи и как реализуем проекты. На примере новых конфигураций на базе Mac mini®.
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 39

Истории

В поисках самой мощной видеокарты! Тестируем А100 и А6000 Ada на большой языковой модели

Время на прочтение 11 мин
Количество просмотров 5.2K

Большие языковые модели (LLM) произвели настоящую революцию в мире ML. Все больше компаний стремятся так или иначе извлечь из них пользу. Например, в Selectel мы оцениваем рациональность развертывания частной LLM для помощи сотрудникам техподдержки в поиске ответов на вопросы клиентов. Эту задачу мы решили совместить с тестом нового железа — видеокарты Ada с 48 ГБ RAM. В соперники ей выбрали А100 на 40 ГБ.

Сразу оговоримся, что нормально обучить LLM на одной GPU практически невозможно, но в качестве теста производительности такая задача вполне подходит. Под катом рассказываем, как мы проводили тест-драйв двух GPU и к каким выводам пришли.
Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 13

Квест по синхронизации аналитического и оперативного хранилищ в реальном времени без потерь на сотнях терабайт данных

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 1.7K

Я работаю в компании STM Labs, где мы строим большие высоконагруженные системы класса Big Data. Эта статья написана по мотивам моего выступления на конференции Saint Highload 2023. Хочу рассказать вам увлекательную историю про то, как мы искали лучшее решение по синхронизации аналитического и оперативного хранилищ в реальном времени. Нам важно было сделать это без потерь, потому что на кону стояли сотни и более терабайт данных.

Сразу обозначу, чего в этой статье не будет:

• Я не буду подробно говорить о типах СУБД и их различиях.
• Я не буду делать обзор аналитических СУБД. Тут каждый выбирает сам.
• Я не буду подробно останавливаться на архитектуре, отказоустойчивости и масштабировании СУБД MongoDB.
• Я не буду делать обзор отличий OLAP и OLTP.
• Я не буду делать обзор и сравнение реализаций CDC в различных СУБД.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 6

Как я обработал один миллиард строк в PHP

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 16K

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

Моё участие в проекте было мотивировано присутствием в нём двух моих коллег, которые достигли лидирующих позиций.

PHP не известен своими выдающимися скоростными показателями. Тем не менее, учитывая, что я работаю над профайлером PHP, я решил исследовать его производительность на примере этого вызова.

Читать далее
Всего голосов 76: ↑74 и ↓2 +72
Комментарии 33

Бьемся с индексацией парных неравенств в PostgreSQL

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 3.1K

Я уже не раз писал, что условия с несколькими неравенствами (<, <=, >=, >) обычно плохо подходят для индексирования "классическим" btree, вызывают "тормоза", и необходимо придумывать различные нетривиальные подходы в PostgreSQL, чтобы добиться хорошей производительности подобного запроса.

В этой статье мы не только рассмотрим способы решения подобных задач "в общем виде", но и покажем, как нам удалось автоматизировать их решение в рамках функционала рекомендаций индексов нашего сервиса анализа планов explain.tensor.ru и его новых возможностях.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 2

AMD решила пойти по пути Nvidia и выпустила урезанный ИИ-чип. Но что-то пошло не так

Время на прочтение 4 мин
Количество просмотров 9.5K

Не так давно мы писали о том, что Китай не может покупать ускорители A100 и H100 от Nvidia, просто потому, что они попали под экспортные ограничения. Но американская корпорация вовремя подсуетилась и выпустила урезанные версии этих чипов, Nvidia ранее выпустила искусственно урезанные версии этих систем, А800 и Н800. Сделали это для обхода экспортных ограничений.

В 2024 году аналогичным образом решила поступить и AMD, тоже, видимо, с целью заполучить определенную часть рынка сбыта в Китае. Чип разработали и произвели, но сейчас возникли определенного рода затруднения — GPU оказался слишком быстрым для экспорта в Китай. Подробности — под катом.
Читать дальше →
Всего голосов 36: ↑34 и ↓2 +32
Комментарии 18

От Cache до Middleware: эволюция Tarantool

Время на прочтение 5 мин
Количество просмотров 1.5K


Рассказываем, что такое Middleware, как мы прокачали Tarantool от Cache до Middleware и когда будет полезен Tarantool с новыми возможностями.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 0

10нм техпроцесс и 6 ГГц: Intel ставит новые рекорды производительности чипов. Что нового?

Время на прочтение 3 мин
Количество просмотров 12K

На Хабре не так редко публикуются новости и статьи о разгоне «железа». В частности, профессиональные оверклокеры используют специализированные оборудование, жидкий азот и другие ухищрения, чтобы добиться от процессоров небывалой производительности.

Компания Intel ставит рекорды и без дополнительного оборудования. На днях стало известно, что ей ей удалось довести штатную тактовую частоту процессора Intel® Core i9-14900KS до 6,2 ГГц. Все работает, как принято говорить, уже из коробки. При этом ни жидкий азот, ни какие-то специальные алгоритмы не нужны. Подробности — под катом.
Читать дальше →
Всего голосов 49: ↑45 и ↓4 +41
Комментарии 23

Cloudflare открыла код Rust-фреймворка для программируемых сетевых сервисов — Pingora

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 4.6K



Мы гордимся тем, что открываем исходный код Pingora — фреймворка на Rust, который мы используем для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare. Pingora выпускается под лицензией Apache 2.0.

Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 2

Обзор релиза Apache Ignite 2.16.0

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.8K

Apache Ignite — это высокопроизводительная распределенная база данных с открытым исходным кодом, предназначенная для хранения и распределенной обработки больших объемов данных в кластере узлов. В СберТехе есть команда, которая занимается ее развитием. Мы создали Platform V DataGrid — продукт, основанный на Apache Ignite, с enterprise‑функциональностью.

Я был релиз-менеджером Apache Ignite 2.16.0, вышедшей 25 декабря 2023 года, спустя полгода от предыдущего релиза. Хочу ознакомить с основными разработками этой версии:

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 5

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Перенос данных из одного S3 облака в другое

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 1.8K

Перенос файлов от одного облачного провайдера S3 к другому должен был обойтись нам примерно в 133 000 рублей. Вместо этого, мы заплатили за него около 29 000 рублей. Как можно в 5 раз удешевить этот процесс – рассказываем в статье.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Как Сбербанк Онлайн готовится к пиковым нагрузкам

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 9.1K

Какие проблемы появляются при переходе из монолитной архитектуры к микросервисной? Как с ними справляться в пиковые нагрузки? Ответим на эти вопросы на примере Сбербанк Онлайн.

Меня зовут Артём Арюткин, я руковожу проектным офисом в Сбере. Весь мой профессиональный опыт завязан на то, чтобы сделать Сбербанк Онлайн надёжнее. Расскажу про основные принципы отказоустойчивой архитектуры и весь путь эволюции Сбербанк Онлайн.

Читать далее
Всего голосов 39: ↑39 и ↓0 +39
Комментарии 24

Тонкости работы short-circuit routing в ASP.NET Core 8.0

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 4.1K

В статье детально и с примерами рассказываю про short-circuit routing — новую фичу Minimal API в ASP.NET Core 8.0. Она позволяет игнорировать добавленные middleware при вызове отдельных endpoint-ов. Рассмотрим, как это работает, сравним методы и немного поговорим про то, как добавляются middleware в приложение на ASP.NET Core.

Не читайте эту статью, если вам нужно просто прикрутить short-circuit routing и не париться, как оно работает, — для этого достаточно документации и обзора от Andrew Lock. У меня же после них осталось больше вопросов, чем ответов, потому я залез по самые локти в код и разобрался. Если вам тоже интересно — добро пожаловать под кат.

Хочу разобраться
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 9

Итак, вы думаете, что знаете Git? Часть третья: реально большие репозитории

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 18K


Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.

Вам хочется использовать ванильный Git, чтобы управлять репозиторием с объёмом 300 ГБ в 3,5 млн файлов, которые без проблем получают пуш каждые 20 секунд от 4000 разработчиков? Тогда читайте дальше!


Вот агенда блога — наша блогенда:


Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 30

UUIDv7

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 11K

Седьмая версия UUID (Universally Unique Identifier Version 7, UUID Version 7, UUIDv7) является модифицированной и стандартизованной версией ULID. Проект стандарта (далее стандарт) находится в ожидании окончательной проверки редактором. Но уже имеется большое количество реализаций UUIDv7, применяемых в действующих информационных системах. В интернете доступно большое количество информации по ключевому слову UUIDv7.

Читать далее
Всего голосов 19: ↑16 и ↓3 +13
Комментарии 28

Как связать натуральные ключи с суррогатным в Anchor Modeling

Уровень сложности Средний
Время на прочтение 2 мин
Количество просмотров 868

Хранить значения натуральных ключей необходимо, потому что они связывают хранимые данные с реальным миром (внешними классификаторами, реестрами и т.п.), и с ними работают бизнес-пользователи: в выпадающих списках, отчетах и дашбордах. Но в методологии Anchor Modeling для связи таблиц используются только суррогатные ключи, не подверженные изменениям, и это правильно. Поэтому нужно хранить связь натуральных ключей с суррогатным ключом, предпочтительно формата UUIDv7. Как же это сделать в методологии Anchor Modeling?

Получить ответ
Всего голосов 8: ↑4 и ↓4 0
Комментарии 0

Как мы увеличили скорость обработки сервисных сообщений в 10 раз и еще 3 кейса про масштабирование проектов

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.5K

Сформировать 400 000 документов за рабочий день, одновременно загрузить информацию о тысячах доменов, в 10 раз увеличить скорость обработки данных сайта, обеспечить стабильность интернет-магазина при росте посещаемости — решать такие задачи помогает горизонтальное и вертикальное масштабирование. Разбираем на примере наших проектов и кейса клиента, как повысить производительность веб-проекта. 

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 4

Вклад авторов