Рубрика «высокая производительность» - 17

image

Пролог

Периодически, я интересуюсь видеокодеками и тем, насколько они становятся эффективнее по сравнению со своими предшественниками. В свое время, когда после H264 вышел HEVC, мне было безумно интересно его пощупать, но мое железо того времени оставляло желать лучшего.

Сейчас же железо подтянулось, но и HEVC давно устарел, ему на смену жаждет придти открытый AV1, обещающий нам до 50% экономии по сравнению с 1080p H264, но если скорость качественного кодирования в HEVC кажется медленноватой (по сравнения с H264), то AV1 со своим ~0.2 fps деморализует полностью. Когда что-то кодируется настолько медленно, то это значит, что даже простой 10 минутный ролик, будет обрабатываться около суток. Т.е. чтобы просто посмотреть подходят ли параметры кодирования или нужно добавить немного битрейта, придется ждать не просто часами, а днями…

И вот, как-то раз, любуясь красивым закатом (кодека H264), я подумал: «А что, если натравить на AV1 все железо которое у меня есть одновременно?»
Читать полностью »

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

Не только размер имеет значение или что нам принес новый протокол NVMe - 1

Одним из таких решений стал протокол NVM-express, который, как говорят специалисты, совершил революцию в использовании твердотельной энергонезависимой памяти. Что же такое NVMe и какие преимущества он принес с собой?
Читать полностью »

Всем привет!

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

Game of Life с битовой магией, многопоточностью и на GPU - 1

Читать полностью »

Горшочек, вари: серверный ARM-чип Marvell ThunderX3 с 96 ядрами и SMT4 для 384 потоков - 1

Недавно мы публиковали новость о 128-ядерном ARM-процессоре Altra Max. Также на Хабре упоминали серверные ARM-чипы, которые использует компания Amazon. Но, как оказалось, серверные процессоры c архитектурой ARM выпускают и другие компании.

Так, еще в конце марта этого года был анонсирован процессор Marvell ThunderX3, это новое поколение серверных чипов от компании Marvell. Производитель увеличил количество ядер в своих процессорах с 32 до 96, оставив поддержку SMT4, которая дает возможность обрабатывать четыре потока одним ядром. Соответственно, такой чип способен обрабатывать 384 потока.
Читать полностью »

Одна из основных проблем разработчиков, когда они создают приложение с ORM — это N+1 запрос в их приложениях. Проблема N+1 запроса — это не эффективный способ обращения к базе данных, когда приложение генерирует запрос на каждый вызов объекта. Эта проблема обычно возникает, когда мы получаем список данных из базы данных без использования ленивой или жадной загрузки (lazy load, eager load). К счастью, Laravel с его ORM Eloquent предоставляет инструменты, для удобной работы, но они имеют некоторые недостатки.
В этой статье рассмотрим проблему N+1, способы ее решения и оптимизации потребления памяти.

Читать полностью »

Компания Ampere анонсировала 128-ядерный ARM-процессор Altra Max - 1

Несколько месяцев назад калифорнийская компания Ampere представила первый в отрасли 80-ядерный ARM-процессор Ampere Altra. Этот чип на 64-битной архитектуре предназначен для установки в серверное оборудование, он не для потребительского рынка. Сейчас же компания расширила линейку процессоров, дополнив ее 128-ядерной моделью.

Altra Max совместим с другими моделями Altra и могут устанавливаться в серверы, где уже стоят процессоры компании той же линейки. Вся она базируется на дизайне ARM Neoverse N1, он же лежит в основе процессоров AWS Graviton2 от AWS. Компания Ampere заявила, что новые процессоры позволят повысить производительность оборудования, в чем заинтересованы поставщики облачных услуг.
Читать полностью »

Большинство программистов понимают то, что асинхронный Python-код имеет более высокий уровень конкурентности, чем обычный синхронный код. Это даёт некоторые основания полагать, что асинхронный код способен показывать более высокий уровень производительности при решении распространённых задач вроде выдачи динамических веб-страниц или поддержки веб-API.

Асинхронный Python-код медленнее обычного кода - 1

Но, к сожалению, Python-интерпретатор не выполняет асинхронный код быстрее синхронного.

В реалистичных условиях асинхронные веб-фреймворки показывают немного худшую пропускную способность (выраженную в запросах в секунду), чем обычные, и отличаются гораздо более сильной изменчивостью задержек.
Читать полностью »

Как устроена индустрия лицензирования кино? Почему Okko так лагает на PS4? - 1

9 июня в нашем инстаграм-аккаунте прошел прямой эфир с CTO Okko Алексеем Голубевым и вышла настоящая прожарка — 99% вопросов составила критика сервиса.
Из-за этого получился скорее более продуктовый рассказ, чем технический, но по сложившейся традиции, мы выкладываем все расшифровки и записи эфиров.
Читать полностью »

Производительность современной Java при работе с большим объёмом данных, часть 2 - 1

FYI: Первая часть.

Бенчмарк пакетного конвейера

Пакетный конвейер обрабатывает конечный объём сохранённых данных. Здесь нет потока результатов обработки, выходные данные агрегирующей функции нужно применить ко всему набору данных. Это меняет требования к производительности: задержка — ключевой фактор при потоковой обработке — здесь отсутствует, потому что мы обрабатываем данные не в реальном времени. Единственная важная метрика — общее время работы конвейера.

Поэтому мы выбрали Parallel. На первом этапе тестирования, при работе на одной ноде, этот сборщик действительно показал лучшую пропускную способность (но только после настройки). Однако это было получено ценой длительных пауз. Если одна из нод кластера останавливается на сборку мусора, это стопорит весь конвейер. А поскольку ноды собирают мусор в разное время, общее время сборки увеличивается с добавлением каждой ноды к кластеру. Мы проанализировали этот эффект, сравнив результаты тестирования на одной ноде и на кластере из трёх нод.

Кроме того, на этом этапе мы не рассматривали экспериментальные сборщики с низкой задержкой. Их очень короткие паузы не влияют на результаты тестирования, к тому же это достигается за счёт пропускной способности.
Читать полностью »

Технологии шагают вперёд. И вот уже несколько лет как есть SoC’и MCU+FPGA. И на
КДПВ платка как раз с таким SoC’ом.

image

Это — Microsemi SmartFusion 2 Maker-Board. Кому интересно, что это за плата прошу под кат. Будет краткий обзор.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js