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

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

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

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

Миф развенчан: распределённые транзакции можно масштабировать

Время на прочтение 9 мин
Количество просмотров 3.4K
Высокая производительность *Программирование *Администрирование баз данных *Распределённые системы *
Перевод

В сборнике VLDB'17 вышла такая статья. В ней представлена NAM-DB, масштабируемая распределённая система баз данных, использующая удалённый прямой доступ к памяти (RDMA) — в основном, однонаправленный вариант RDMA — и инновационную технологию диспетчера временных меток (timestamp oracle) для поддержки транзакций с изоляцией мгновенного снимка (SI). NAM в данном случае означает архитектуру с прикреплением памяти к сети (network-attached-memory), где благодаря активному использованию RDMA вычислительные узлы получают возможность напрямую общаться с пулом узлов памяти.

Читать далее
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 4

Новости

Зачем нам Reactive и как его готовить

Уровень сложности Сложный
Время на прочтение 20 мин
Количество просмотров 2.1K
Блог компании Альфа-Банк Высокая производительность *Программирование *Java *
Туториал

Привет! Меня зовут Татьяна Руфанова. Сегодня мы будем понимать и принимать Reactive (Реактив). В статье расскажу, почему мы выбрали Реактив в мидл слое мобильного приложения Альфа-Банка (а у нас 300 микросервисов и треть из них реактивные), разберём, почему «нелогичное» поведение реактивной программы на самом деле очень логичное, какие сложности реактивный подход принесёт в процессе написания и исполнения кода, и как с этим бороться. А чтобы не траблшутить в проде, будем ломать тесты на Project Reactor.

Налейте чаю, включите звуки природы и настройтесь пройти все стадии принятия Reactive.

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

Приглашаем на Ozon Tech Community Go Meetup (Екатеринбург)

Время на прочтение 2 мин
Количество просмотров 449
Блог компании Ozon Tech Высокая производительность *PostgreSQL *Go *Конференции

Здесь мог быть каламбур про Go в Екат. Эх, всё-таки просочился. 

Привет, меня зовут Ильяс, и я – старший разработчик в Ozon.

Мы постоянно говорим, что Go – один из наших самых любимых языков. А почему? А потому что эффективен. Мы можем просто и быстро писать высокопроизводительные решения, а потом без труда их поддерживать и масштабировать. На Go написано более 1000 микросервисов, обеспечивающих работу сайта, склада, систем логистики. 

Ждём всех в гости на открытый Ozon Tech Community Go Meetup 20 апреля в 18:00 в Екатеринбурге (16:00 по Москве). И, конечно, будет онлайн.

Подробности
Всего голосов 8: ↑5 и ↓3 +2
Комментарии 2

Как устроен massively parallel processing (MPP) в Trino

Время на прочтение 10 мин
Количество просмотров 593
Блог компании CedrusData Высокая производительность *Big Data *Параллельное программирование *

Из нашей повседневной практики доподлинно известно, что массивно(массово?)-параллельные вычисления это круто. Но что именно означает этот термин, и как "массивность" и "параллельность" реализованы в конкретной системе? В данной статье мы ответим на оба вопроса, проанализировав внутреннюю архитектуру популярного MPP-движка для больших данных Trino.

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

Истории

Как добиться эталонного качества передачи голоса через интернет

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 3.8K
Блог компании VK Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Анализ и проектирование систем *Звук

Голосовая связь с нами давно: первые телефоны изобрели ещё в конце 19-го века, а мобильные — в середине 20-го. В начале 2000-х начал набирать популярность ещё один способ связи — интернет-звонки. Идея по сути та же — общаться на расстоянии, только ещё проще и дешевле. Плюс онлайн-звонки дают много дополнительных функций: от возможности видеть собеседников по видеосвязи до формата, когда вы вместе смотрите кино, находясь в разных точках планеты. Технологии идут вперёд, и тем не менее мы снова и снова переспрашиваем: «Слышно меня?».

Разберёмся в статье с вопросами качества передачи голоса в звонках. Например, почему может быть плохо слышно того, кто звонит из автомобиля? В чём особенность использования динамиков вместо наушников? Что происходит со звуком участника звонка, если у него плохой интернет? Можно ли измерить качество звука в цифрах? Ответы под катом.

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

«Чистый» код, ужасная производительность

Время на прочтение 16 мин
Количество просмотров 39K
Блог компании Sportmaster Lab Высокая производительность *Программирование *Совершенный код *C++ *
Перевод
Один из самых часто повторяемых советов программистам, особенно начинающим — это рекомендация писать «чистый» код. Она сопровождается длинным списком правил, сообщающих, что нужно делать, чтобы код был «чистым».

На самом деле, большая доля этих правил не влияет на среду исполнения кода, который вы пишете. Подобные правила невозможно оценить объективно, да это и необязательно, ведь на этом этапе они достаточно произвольны. Однако есть правила «чистого» кода, на которые делают особый упор — это правила, которые можно измерить объективно, поскольку они влияют на поведение кода в среде исполнения.

Если посмотреть на список правил «чистого» кода и вытащить из него правила, которые действительно влияют на структуру кода, то мы получим следующее:

  • Отдавайте предпочтение полиморфизму, а не «if/else» и «switch»
  • Код не должен знать о внутреннем устройстве объектов, с которыми он работает
  • Функции должны быть маленькими
  • Каждая функция должна выполнять одну задачу
  • Принцип «DRY» — Don’t Repeat Yourself («не повторяйся»)

Эти правила достаточно чётко формулируют то, как должен создаваться конкретный фрагмент кода, чтобы быть «чистым». Но я задам такой вопрос: если мы создадим фрагмент кода, соответствующий этим правилам, какова будет его производительность?
Читать дальше →
Всего голосов 179: ↑149 и ↓30 +119
Комментарии 328

Как выжать 1,5 терафлопса производительности для 32-битных чисел с плавающей точкой на одном процессоре M1

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 3.1K
Блог компании SkillFactory Высокая производительность *Программирование *C++ *Математика *
Кейс
Перевод

Если вы занимаетесь обучением крупных современных нейросетей, эта статья будет вам не совсем в тему, ведь у A100 скорость в сто раз выше (156 терафлопсов).


Так что же интересного в этих полутора терафлопсах?


  • работа на одном ядре MacBook Air 2020 года с питанием от батареи;
  • выполнение с задержкой ~0,5 наносекунды на инструкцию.

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

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

6 дисплеев, 192 ядра и 3 ТБ ОЗУ DDR5: на что способен «ноутбук» от Mediaworkstations и другие подобные системы

Время на прочтение 4 мин
Количество просмотров 28K
Блог компании Selectel Высокая производительность *Компьютерное железо Настольные компьютеры Ноутбуки


Иногда производители электроники выпускают устройства, в существование которых сразу и поверить сложно. Кажется, что это просто выдумка. Так обстоит дело, например с рабочей станцией a-X2P от компании Mediaworkstations. Как и указано в заголовке, у нее 6 дисплеев, 192 ядра и 3 терабайта ОЗУ DDR5.

И, к слову, 6 экранов — еще не предел. Существует более монструозный девайс, который получил название Aurora 7. Там 7 дисплеев и тоже много интересного, правда, это не новая модель, продажи стартовали в 2021 году. О возможностях этих систем — под катом.
Читать дальше →
Всего голосов 49: ↑48 и ↓1 +47
Комментарии 47

ThreadPool.Intro

Время на прочтение 6 мин
Количество просмотров 1.7K
Блог компании Контур Высокая производительность *Программирование *.NET *C# *

Тема тредпула, скажем так, complex and hard. У меня в жизни было два «осознания», когда я гордо говорил себе — вот теперь-то я точно понял, как устроен и как работает тредпул в дотнете! Впрочем, после второго раза я неоднократно осознавал, как же я ошибался.

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

Основные аспекты наблюдаемости систем

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 2.4K
Блог компании RUVDS.com Высокая производительность *Распределённые системы *
Перевод

В современной разработке ПО наблюдаемость (observability) является важнейшей концепцией, которая относится к способности получать представление о внутренних процессах сложных систем. Она подразумевает сбор данных из разных источников, таких как журналы, метрики и трейсы, с последующим их использованием для лучшего понимания функционирования системы, выявления проблем и их устранения. И в этой статье мы подробно разберём все аспекты реализации этой концепции.
Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Комментарии 3

Скоростной серфинг по библиотеке с помощью ChatGPT

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.7K
Высокая производительность *C++ *Машинное обучение *
Туториал

В прошлой статье в теории были рассмотрены некоторые аспекты использования ChatGPT в узконаправленной области изучения библиотеки Bullet Physics library. Теперь попробую привести практический пример.

Серфим далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 6

Система кругового обзора одной видеокамерой и вращающимися зеркалами, v. 2

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 4.4K
Высокая производительность *Работа с видео *Занимательные задачки Фототехника Автомобильные гаджеты
Из песочницы

Пишу типа RFC, критикуйте, ведь физику и математику изучал давно, но идеи кажутся очень перспективными.

Сейчас обычно ставят много камер по периметру охраняемой территории или "рыбий глаз" на бампер авто с неприятными искажениями. Во все стороны глядеть – камер не напасёшься, особенно если они не широконаправленные, качественные.

Ведь можно из середины объекта сверху обозреть в принципе всё вокруг и даже вверх/вниз на полную сферу (исключая корпус своего объекта) несколько Гц небольшим "гаджетом" (зеркальный датчик, ЗД) и подсказать самые интересные/опасные объекты с помощью нейросетей, определить расстояние до любого, его габариты, вычислить скорость, направление и текущую опасность. Для всех IT-шников работа найдётся ! ;) Всё выглядит очень просто...

Читать далее
Всего голосов 13: ↑5 и ↓8 -3
Комментарии 16

Хотите проектировать устройство, которое использует миллиард человек — решайте микроархитектурные задачки

Время на прочтение 8 мин
Количество просмотров 7.5K
Высокая производительность *Хакатоны FPGA *Программирование микроконтроллеров *Производство и разработка электроники *

Длинный извилистый путь Школы Синтеза Цифровых Схем приближается к годовой кульминации. 21-23 пройдет хакатон по процессорам в зеленоградском МИЭТ, после чего 150 слушателей из дюжины российских городов оправятся готовится к майским праздникам, приближающимся сессиям и лету.

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

Для экзамена мы выбрали три темы в четырех упражнениях:

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 16

Быстрее, больше, сильнее: фреймворки Python с параллельной обработкой данных

Время на прочтение 12 мин
Количество просмотров 5.7K
Блог компании FirstVDS Высокая производительность *Open source *Python *Программирование *

Хотите распределить тяжелую рабочую нагрузку в проектах на Python между несколькими процессорами или вычислительным кластером? В этой статье расскажем про лучшие фреймворки, которые помогут реализовать подобно желание на практике.

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

Действительно ли DAPC выгоднее BIOS default performance?

Время на прочтение 6 мин
Количество просмотров 886
Блог компании HOSTKEY Высокая производительность *Системное администрирование *

Изучение производительности сервера может быть очень полезно, особенно если вы работаете с ресурсоемкими приложениями. Одним из способов повышения производительности является настройка параметров BIOS. В этой статье мы попытаемся ответить на вопрос, действительно ли DAPC выгоднее BIOS default performance.

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

Замеряй и ускоряй: как мы сократили время вызова метода в Java-коде в 16 раз

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 5.5K
Блог компании Сбер Высокая производительность *Тестирование IT-систем *Python *Java *
Ретроспектива

Привет, Хабр! Замер производительности кода — не самое простое упражнение для разработчика. Приходится решать кучу сложностей: разбираться с методом, создавать правильные условия. И всё равно можно получить результат с погрешностью, потому что любой метод «не бесплатный» и требует ресурсов процессора.

Меня зовут Александр Певненко, я Java-разработчик в СберТехе. Вместе с командой мы развиваем Platform V DataSpace. Это облачный сервис, который упрощает и ускоряет разработку приложений, используя концепцию Backend-as-a-Service (BaaS) для хранения и управления данными. Я расскажу про наш способ замера производительности кода с помощью бенчмарков. Рассматривать метод будем на примере оптимизации кода в Platform V Dataspace, которая помогла сократить время вызова метода в 16 раз.

В статье я буду пользоваться языком Java, Python для построения графиков и набором библиотек JMH — они также адаптированы для Kotlin, Scala и т.д. 

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

Как мы увеличили скорость работы сайта в 10 раз

Время на прочтение 6 мин
Количество просмотров 17K
Высокая производительность *Разработка веб-сайтов *Проектирование и рефакторинг *VueJS *
Кейс

Полностью обновили код и разработали дизайн сайта alta-profil.ru. Сделали его удобнее, быстрее и информативнее для пользователей. В этом кейсе расскажем об обновлении сайта: что делали, с какими проблемами столкнулись и как их решали.

Читать далее
Всего голосов 12: ↑2 и ↓10 -8
Комментарии 20

msgspec: быстрый и экономичный парсинг JSON на Python

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.5K
Блог компании SkillFactory Высокая производительность *Python *Программирование *
Кейс
Перевод

В библиотеке msgspec много функций, например кодирование, поддержка MessagePack (альтернативный формат, который быстрее JSON) и другие. Если вы регулярно парсите файлы JSON, и у вас проблемы с производительностью или памятью, или просто нужны встроенные схемы, то попробуйте msgspec.


Ниже рассказываем о библиотеке подробнее. Итак, чтобы обработать большой файл JSON на Python без сбоев и аварийного завершения, нужно:


  1. Убедиться, что используется не слишком много памяти.
  2. Спарсить файл как можно быстрее.
  3. В идеале также заранее убедиться, что данные валидны и имеют правильную структуру.

Конечно, можно объединить решения с несколькими библиотеками. А можно — всего с одной. Схемы, быстрый парсинг и хитрые приемы для уменьшения потребления памяти — все это новая библиотека msgspec.

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

ArrayPool<T>: подводные камни

Время на прочтение 12 мин
Количество просмотров 7.3K
Высокая производительность *Программирование *.NET *C# *


Автоматическая сборка мусора упрощает разработку программ, избавляя от необходимости отслеживать жизненный цикл объектов и удалять их вручную. Однако, чтобы сборщик мусора был полезным инструментом, а не главным врагом на пути к высокой производительности — иногда имеет смысл помогать ему, оптимизируя частые аллокации и аллокации больших объектов.


Для уменьшения аллокаций в современном .NET предусмотрены Span/Memory<T>, stackalloc с поддержкой Span, структуры и другие средства. Но если без объекта в куче не обойтись, например, если объект слишком большой для стека, или используется в асинхронном коде — этот объект можно переиспользовать. И для самых крупных объектов — массивов, в .NET встроены несколько реализаций ArrayPool<T>.


В этой статье я расскажу о внутреннем устройстве реализаций ArrayPool<T> в .NET, о подводных камнях, которые могут сделать пулинг неэффективным, о concurrent-структурах данных, а также о пулинге объектов, отличных от массивов.

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

Когда НЕ нужно использовать Apache Kafka?

Уровень сложности Средний
Время на прочтение 18 мин
Количество просмотров 6.1K
Блог компании CloudMTS Высокая производительность *Системное администрирование *IT-инфраструктура *Apache *
Обзор
Перевод
image

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


В статье, перевод которой мы подготовили, автор Kai Waehner постарается ответить на эти вопросы. В отдельных главах приводится объяснение, когда стоит использовать Kafka, когда — нет, а когда — возможно.

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

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