Рубрика «ruvds_статьи» - 51

Выжимаем все соки: PGO Оптимизация ядра Linux - 1


Сложность вычислительных задач и систем растёт с каждым днём. Для бизнеса ускорение кода даже на пару процентов даёт улучшение производительности, заметное снижение издержек и уменьшение задержки(latency). В первую очередь это касается мобильных и встраиваемых систем, высоконагруженных серверов, научных вычислений и 3D-графики. Так был разработан относительно перспективный и молодой метод оптимизации — Profile-Guided Optimization, далее просто PGO-оптимизация. Данный метод эффективно используют такие известные компании, как Google, Mozilla Foundation, Intel, Oracle, IBM и другие. Практически ни один современный веб-браузер не обходится без PGO-оптимизации.

Не так давно компанией Google был предложен набор патчей, включающий PGO-оптимизацию в ядре Linux. Мною был протестирован этот набор патчей в работе и доработан. Мне хотелось бы рассказать об этом методе оптимизации ядра Linux, о том, с какими трудностями можно столкнуться, и как их решить.

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

Как оценить реальную производительность своего кода - 1


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

Как портят софт ради обратной совместимости - 1


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

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

Звуковая карта USB на STM32. Часть 2: Используем встроенный АЦП - 1


Во второй части публикации речь пойдёт о реализации линейного входа описанной ранее звуковой карты USB на встроенном в MCU STM32F411CEU6 АЦП.

В статье будут разобраны несколько неочевидных нюансов подобной реализации, а в финале мы сравним характеристики линейного входа на встроенном АЦП с характеристиками линейного входа на кодеке TLV320AIC3104IRHB.
Читать полностью »

Пневмоника и процессор постапокалипсиса - 1


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

Удивительно, но струйная логика используется не только в ракетных двигателях или газодинамических подшипниках, но и в бытовых газовых счётчиках. Совершенно случайно я наткнулся на пост «Внутренности газового счётчика» на Пикабу и увидел своих старых знакомых. «Ребята, а что вы тут делаете?», — подумал я и понял: время пришло.
Читать полностью »

DIY: тёплый ламповый усилитель-фонокорректор RIAA MM - 1


Привет! Многие считают, что самая правильная запись звука — механическая, то есть на долгоиграющие виниловые грампластинки. А самые лучшие проигрыватели для винила построены на термоионных приборах, они же — электронные лампы.

На самом деле лампы просто позволяют минимальными схемотехническими средствами (хотя и с немалыми затратами времени, места и финансов) достичь хороших результатов.

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

Самодельное электронное шумоподавление для квартиры - 1

Картинка kickstarter

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

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

Проектируем процессор постапокалипсиса с помощью openSource - 1


Проектируемый компьютер на сверхминиатюрных электронных лампах хоть и является радиационно-стойким, однако работает на электричестве. Кроме того, восстановить в сжатые сроки производство электронных ламп в условиях постапокалипсиса будет довольно сложной задачей. На руинах цивилизации гораздо проще организовать массовое производство логических элементов, работающих на эффекте прилипания струи воздуха к стенке — при этом сам элемент можно лепить хоть из глины! И мало того, что для создания потока воздуха не обязательно использовать электричество — теоретически такой процессор сможет работать на энергии ударной волны ядерного взрыва! Но обо всём по порядку. Для тех, кто следит за проектом DekatronPC — не пугайтесь, ему ничего не угрожает.

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

Как я сделал самый быстрый в мире файловый сервер - 1


Задача — среди множества файлов найти на диске конкретный и отдать его по HTTP с заголовками «content-encoding», «mime-type» и «content-lenght». И сделать это как можно быстрее — на локальном хосте, чтобы не уткнуться в физические барьеры. Нас интересует скорость ради скорости.

В качестве веб-сервера будем использоваться Kestrel, .NET 7 RC 1, minimal API и F#. Финальная, оптимизированная версия есть и для C#.
Читать полностью »

Правда ли, что наша Вселенная — это голограмма? - 1


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

На основе этих идей, — красивых, но умозрительных, — более 20 лет назад была построена теория «вселенной-голограммы». И всё это время теория остаётся сколь занимательной, столь и проблемной.
Читать полностью »


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