Главная » Архив меток: Высокая производительность

Архив меток: Высокая производительность

Ускоряем неускоряемое или знакомимся с SIMD, часть 2 — AVX

Поэтому продолжаем знакомиться с SIMD, но уже с современной его частью — AVX. Предыдущая часть вызвала бурную дискуссию, в ходе которой выяснилось, что AVX/AVX2 на самом деле есть в десктопных CPU, нет только AVX512. А так же разберём некоторые комментарии: медленнее ли _mm256_load_si256, чем прямое обращение к памяти? влияет ли на скорость использование AVX команд над SSE регистрами? действительно ли ...

Читать далее »

День, когда Dodo IS остановилась. Синхронный сценарий

Dodo IS — глобальная система, которая помогает эффективно управлять бизнесом в Додо Пицце. Она закрывает вопросы по заказу пиццы, помогает франчайзи следить за бизнесом, улучшает эффективность сотрудников и иногда падает. Последнее — самое страшное для нас. Каждая минута таких падений приводит к потерям прибыли, недовольству пользователей и бессонным ночам разработчиков. Мы научились распознавать сценарии системного апокалипсиса и обрабатывать их. Но ...

Читать далее »

Ускоряем неускоряемое или знакомимся с SIMD

Есть класс задач, которые нельзя ускорить за счёт оптимизации алгоритмов, а ускорить надо. В этой практически тупиковой ситуации к нам на помощь приходят разработчики процессоров, которые сделали команды, позволяющие выполнять операции на большим количеством данных за одну операцию. В случае x86 процессоров это инструкции сделанные в расширениях MMX, SSE, SSE2, SSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, AVX512. В качестве «подопытного ...

Читать далее »

[Перевод] Исследуем пределы пропускной способности Kafka в инфраструктуре Dropbox

И Kafka на острие популярности: нынче людей, знающих такой брокер сообщений, пожалуй, превосходит количество тех, кто привык рядом со словом Кафка видеть слово Франц. Широкое использование технологий Apache-стека — очевидный тренд. Но ведь всегда интересно, а как оно получается у других? Мы и сами активно используем эту технологию в наших проектах. Поэтому мы перевели свежую статью, в которой рассказывается о ...

Читать далее »

[Перевод] io_submit: альтернатива epoll, о которой вы никогда не слышали

В ней обсуждается новый механизм опроса в Linux AIO API (интерфейс для асинхронной работы с файлами), который добавили в ядро версии 4. Недавно внимание автора привлекла статья на LWN о новом интерфейсе ядра для опроса (polling). Идея довольно интересная: автор патча предлагает использовать Linux AIO API для работы с сетью. 18. Ведь Linux AIO был создан для работы с асинхронным ...

Читать далее »

Высоконагруженная распределенная система управления современной АЭС

Без электричества не будет высоконагруженных интернет-сервисов, которые мы так любим. Как ни странно, системы управления объектами генерации электричества, например атомными электростанциями, тоже бывают распределенные, тоже подвержены высоким нагрузкам, тоже требуют множества технологий. К тому же, доля атомной энергетики в мире будет расти, управление этими объектами и их безопасностью – очень важная тема. Поэтому давайте разбираться, что там есть, как оно ...

Читать далее »

Как мы сайт Republic на Kubernetes переводили

Максимум, чем располагает коллектив — на уровне чутья сказать, «крепкий» материал или же «обычный». Скандальные, важные и просто очень крутые материалы выходят в СМИ не каждый день, да и со 100% точностью спрогнозировать успешность той или иной статьи не возьмётся ни один редактор. Дальше начинается непредсказуемая магия СМИ, благодаря которой статья может выйти в топы поисковой выдачи с десятками ссылок ...

Читать далее »

Управление секретами при помощи HashiCorp Vault

Как правильно хранить секреты? В репозитории, в системе деплоя или в системе управления конфигурациями? На личном компьютере, на серверах, а может в коробке под кроватью? А как управлять секретами, чтобы не допускать утечек? В Авито два года активно используют HashiCorp Vault, за это время набили шишки, и прокачали опыт до уровня «Мастер». Сергей Носков (Albibek) — руководитель группы информационной безопасности платформы из Авито, знает ответ на эти вопросы и поделится с нами. В статье всесторонне поговорим про Vault: что ...

Читать далее »

[Перевод] Courier: мигрирование Dropbox на gRPC

Большинство современных программных продуктов не являются монолитными, а состоят из множества частей, которые взаимодействуют друг с другом. При таком положении дел необходимо, чтобы общение взаимодействующих частей системы происходило на одном языке (притом что сами эти части могут быть написаны на разных языках программирования и выполняться на разных машинах). Упростить решение этой задачи помогает gRPC — open-source-фреймворк от Google, выпущенный в ...

Читать далее »

Дефективное встраивание функций в Go

Эквивалентен ли по производительности код, представленный ниже? // (A). Вызов HasPrefix будет встроен. return strings.HasPrefix(s, "#") // (B). Ручное встраивание тела HasPrefix. return len(s) >= len("#") && s[:len("#")] == "#" Ответ: нет. За подробностями и объяснениями прошу под кат. Доброго времени суток, перед тем, как раскрыть тему, хотел бы представиться.Меня зовут Искандер и я время от времени отправляю коммиты в ...

Читать далее »