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

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

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

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

SQL HowTo: TOP-N на субинтервалах

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

Периодически сталкиваюсь с однотипными задачами вида "показать TOP-N позиций на каждом из вложенных интервалов некоторого периода".

Это может быть "5 лучших по успеваемости студентов в каждом семестре за последний учебный год", или "помесячная динамика позиции 10 наиболее продающихся товаров", или, как у нас в сервисе визуализации PostgreSQL-планов explain.tensor.ru, "3 наиболее активных страны за каждый день":

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

Новый процессор из Китая в 4 раза быстрее предшественника: SW26010 Pro с 13,8 Тфлопс

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

Ранее в этом году в Национальном суперкомпьютерном центре в Чанше (Китай, провинция Хунань) запустили новый суперкомпьютер, который собран на базе процессора Sunway SW26010 Pro с 384 ядрами. Стоит отметить, что этот чип разработан самими китайцами. О том, что это за процессор и насколько он производительный — читайте под катом.
Читать дальше →
Всего голосов 54: ↑50 и ↓4+46
Комментарии4

Развитие RISC-V & мультиклеточная архитектура

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

Рост популярности RISC-V с момента его появления в 2010 году позволяет говорить, что архитектура состоялась.

Пока успех архитектуры RISC-V — это, в первую очередь, ее открытость. Все остальные факторы вторичны. Минимализм системы команд, ее стандартизация, программная инфрастуктура — все это очень важно. Но, если бы за все это платили, как платят создателям ARM, то RISC-V, скорее всего, не было бы. Говорить о действительном успехе этой архитектуры можно будет только тогда, когда она создаст реальную конкуренцию ARM и х86 на высокомаржинальных рынках мобильных телефонов, планшетов, ПК, встроенных систем, суперкомпьютеров и искусственного интеллекта.

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

Так, если уровень системы команд RISC-V рассматривать как
архитектурный, доступный компилятору и программисту, то реализация этого уровня
внутри процессора на мультиклеточных принципах будет микроархитектурным
уровнем, недоступным программисту, но именно этот уровень отвечает за
характеристики процессора.

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

Инструкция по установке Postgres для OLTP приложений и 1С. Часть 1 Базовая конфигурация

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

В Postgres достаточно подробная документация, и видимо поэтому , при инсталляции Postgres для 1С большинство параметров приходится выставлять самим. Параметров в Postgres много, а составить эффективную комбинацию не так просто. Все упрощается если рассмотреть профиль нагрузки, например, 1С это прежде всего профиль OLTP нагрузки – так устроены его метаданные (объекты).  Если сосредоточится на оптимизации профиля OLTP, понимание Postgres сразу упростится.

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

Истории

Этап полировки. Самодельные циклы с параметром в многозвенном «манипуляторе» для работы с данными (генерация карты)

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

Здравствуйте. Есть желание поделиться опытом организации циклов. Не ожидайте что это прямо такая лекция от специалиста, это просто то, чем я мог-бы поделиться интересным на данном этапе в рамках проекта. Из прошлой публикации по ссылкам можено перейти на код, не блещущий глянцем, но зато матовый оттенок ассемблера там имел место быть по следующим причинам:

для доведения до глянца алгоритма генератора нужно было иметь точное представление формул, а их у меня не было, и формулы расчётов буквально отлаживались в отладчике - искались ошибки, после обнаружения таковых автоматического тестировщика, и формулы для отладки движка генератора карт ещё при этом и растасовывались по коду, для сокращения числа их применения, ну или их частей - такое тоже было. Почему я не использовал case тоже можно объяснить достаточно просто : в конечно счёте применение ассемблера имело место - ознакомится с требуемым его функционалом как можно больше, наработать навык и потом применить. Конечно это не бог весть какое достижение, но тем не менее "рабочая камера" движка генератора карт преобразилась с такого вида

Читать далее
Рейтинг0
Комментарии2

Мастерство многопоточности: Превращаем Java в шедевр параллельного программирования

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

Всем привет! В этой статье я бы хотел поверхностно пройтись по многопоточности в Java, объяснить, где она используется и зачем нужна.Приятного прочтения!

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

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

Читать далее
Всего голосов 34: ↑2 и ↓32-30
Комментарии10

Четыре способа оптимизации ПО

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

Преждевременная оптимизация может оказаться корнем всех зол, а запоздалая — корнем безысходности. Каким бы быстрым ни становилось аппаратное обеспечение, мы находим способы писать медленные программы. И зачастую проявляется это не сразу. Пользователи могут годами не обращать внимания на проблему в производительности ПО, пока она не становится очевидной, что порой происходит в течение одного дня.
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии12

Китай превращает современные видеокарты GeForce RTX 4090 в ИИ-ускорители. Что происходит?

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

В конце лета 2023 года мы писали о том, что Китай пользуется лазейкой с урезанными версиями ИИ-ускорителей. Дело в том, что Китай не имел возможности покупать (во всяком случае, официально) ускорители А100 и Н100. Но Nvidia ранее выпустила искусственно урезанные версии этих систем, А800 и Н800. Сделано это для обхода экспортных ограничений.

Но чуть позже США запретили ввоз в страну любых ИИ-чипов производства Nvidia, AMD и Intel. Китаю пришлось искать новые способы заполучить производительные графические чипы. Насколько можно понять, Поднебесная нашла и пока что активно пользуется таким способом. Подробности — под катом.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии28

Как разбить видеокарту и поделиться с коллегами? Динамический шеринг GPU в Kubernetes с помощью MIG, MPS и TimeSlicing

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

Привет, Хабр! С вами снова Антон, все еще DevOps-инженер в отделе Data- и ML-продуктов Selectel, который все еще исследует тему шеринга GPU. В предыдущей статье я рассказал, как можно использовать шеринг видеокарт в Kubernetes.

В комментариях была затронута тема динамического переконфигурирования MIG. Вопрос: можно ли настраивать деление GPU при активной нагрузке? Я погрузился подробнее в этот вопрос и нашел несколько способов, как это сделать. Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии8

Андрей Аксёнов, создатель Sphinx и лауреат Highload++: Мой путь — это «святые» девяностые и алгоритмический джихад

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

Андрей Аксёнов нередко начинает свои доклады с такой самопрезентации: «воронежское быдло, интересуюсь информационным поиском». Правда, в Воронеже он уже давно не проживает, но информационный поиск по-прежнему в топе списка его интересов. Работает Андрей тимлидом в компании Avito и руководит юнитом инфраструктуры поиска. А ещё именно он создал поисковый движок Sphinx и не ограничился этим, а участвовал ещё во многих других проектах — работал в веб студиях, геймдеве (приложил руку к 10+ разных игр в начале 2000-х), немного помогал с движком Unigine, много выступал на IT конференциях. За эти заслуги его наградили Премией Highload++ в 2018 году. Мы расспросили его, что значит для него премия и как создать популярный и полезный open-source проект.

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

На Highload++ я в хорошей компании: создатель школы программирования «Хекслет» Кирилл Мокевнин

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

Кирилл Мокевнин — сооснователь школы программирования «Хекслет». В 2019 году по результатам голосования его наградили Премией Highload++ — за весомый вклад в IT-образование. Мы узнали у Кирилла, что для него значит премия и как стать узнаваемым человеком в индустрии.

В 2019 году я жил в США, там и узнал, что меня награждают. Олег Бунин пригласил на церемонию, оплатил билеты и я прилетел. Тогда история премии только начиналась, поэтому я ни о чём таком не мечтал. Но мне приятно было получить высокую оценку, ведь по сути, это был приз зрительских симпатий. Я не подавал никаких заявок и награждение стало приятной неожиданностью.

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

Zabbix, PostgreSQL и pg_stat_statements

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

Я хочу поделиться своим опытом использования Zabbix для анализа проблем с производительностью PostgreSQL, используя расширение pg_stat_statements.

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

Clickhouse, Grafana и 3000 графиков. Как построить систему быстрых дашбордов

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

Меня зовут Валя Борисов, и я — аналитик в команде Ozon. Задача нашей команды — создавать инструменты для мониторинга и анализа скорости. 

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

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

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

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

Лауреат премии Highload++ и основатель Percona Пётр Зайцев: важно понимать, в чём ты особенно хорош

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

Пётр Зайцев — основатель компании Percona по разработке ПО для работы с базами данных, предприниматель в области open source, инвестор, ментор и adviser. Кроме Percona, участвует в проектах Altinity, которые занимаются технологией ClickHouse; FerretDB — альтернативой MongoDB и ряде других. Мы расспросили Петра, как дойти до такого уровня экспертизы и что мешает современным IT-бизнесменам.

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

Настройка ядра Linux с помощью ИИ, согласно ByteDance (Перевод)

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

Linux хорошо подходит для большинства задач, но для того, чтобы справлялся еще лучше ‑требуется настройка ядра, а это всегда непросто. У ByteDance есть предложение сделать это проще.

Читать далее
Всего голосов 13: ↑6 и ↓7-1
Комментарии8

Коммивояжёр за полином*

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

Если вам нужно решить задачу коммивояжёра, то нет ничего проще. Нужно просто взять квантовый компьютер с числом кубитов не меньшим числа вершин рассчитываемого графа…

Нет под рукой квантового компьютера? Не беда, читайте дальше и узнаете, как можно решать данную задачу на классическом компьютере за полиномиальное время* от числа вершин.

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

Как мы автоматизировали очистку ресурсов с помощью Tempest Cleanup

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

Всем привет! Меня зовут Валентина, я разработчик в тестировании облака Selectel. В своей прошлой статье я рассказала, как мы автоматизировали запуск Tempest-тестов в GitLab. Статья вам понравилась, поэтому я написала продолжение.

В нашей автоматизации была проблема: после тестов ресурсы «подвисали» и не удалялись. Отработавшие тесты занимали проектные квоты и это влияло на стабильность пайплайна.

Для решения этой проблемы нам нужен был инструмент, который умеет автоматически утилизировать ресурсы после каждого теста — и мы кое-что нашли. Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии2

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

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

Всем доброго времени суток. В предыдущей статье я затронул тему клиентской разработки браузерной игры. В этой же публикации попробую пролить свет на детали разработки мультиплеера, а именно - разработки игрового websocket-tcp сервера на Netty.
Разберем технические особенности реализации такого сервера, способы улучшения производительности, игровую логику и т.д.

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

О хранении изображений в памяти с выравниванием

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

В разговорах с коллегами, а также по отдельным постам на форумах я заметил, что даже относительно опытные разработчики порой не достаточно глубоко понимают особенности хранения изображений в памяти. Если вы знаете, что такое выравнивание на границу 64-x байт, а также термины типа «длина или шаг строки (LineWidth/StepWidth, Stride)», «зазоры выравнивания (Alignment Gaps)», кроме того в курсе размеров линий кэша и страниц памяти на вашем компьютере, то вам, вероятно, не будет интересно, а остальные, особенно те, кто интересуется обработкой изображений — могут ознакомиться с предлагаемым материалом, и, возможно найдут для себя что-то новое и полезное. Под катом будет немножко кода на Си и ассемблере, пара LabVIEW скриншотов, предполагается также, что у читателя есть базовые знания OpenCV. Для экспериментов понадобится компьютер с камушком, поддерживающим AVX2.

Читать далее
Всего голосов 22: ↑21 и ↓1+20
Комментарии12

Сколько нужно ядер cpu, чтобы выдержать 30k+ rps?

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

Меня зовут Вадим Ивахин, я техлид в Vi.Tech — это IT-дочка ВсеИнструменты.ру.

Я и мои коллеги трудимся над большим количеством проектов и используем в своей работе различные инструменты, в том числе MongoDB. В этой статье я не стану рассказывать о том, что такое MongoDB. Хочу рассказать о её интересной и удобной особенности — механизме Watch, и о том, как с его помощью спроектировать приложение, способное выдержать десятки тысяч rps.

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

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