Programming News and Articles
8 subscribers
5 photos
3 files
241 links
Download Telegram
Forwarded from Experimental chill
1. Интересно почитать о том, насколько быстрой можно сделать коммуникацию по памяти между процессами в Linux

https://mazzo.li/posts/fast-pipes.html

Если коротко, то используется [vm]splice системные вызовы с большими страницами. Интересный факт заключается в том, что эти вызовы в какой-то степени "дарят" страницы другим процессам и тот, кто их создал, не имеет к ним доступа. Бывают полезные кейсы, несколько раз слышал трейдинг их использует, чтобы правильно отдавать память процессам для обработки. Но правильно их использовать замучиться надо ещё. Поэтому я чаще видел как делают shared memory, контролируя весь стек.

Интересный вопрос, а можно ли что-то придумать, чтобы эти страницы помечались copy on write. Мое знание Linux говорит, что да, такой флажок есть, наверное, что-то даже можно сварить из select+poll, но уже становится достаточно тяжело. Отличная идея для io_uring, как по мне :)

Тем не менее, написано понятным языком, и можно узнать много нового.

2. https://www.forrestthewoods.com/blog/benchmarking-malloc-with-doom3/

Проводят benchmark и гистограммы вызовов аллокатора памяти. Не приводят аргументов, но цифры очень похожи на правду. Медиана в 25 наносекунд, 99.9 где-то 20 микросекунд, а когда ядро решает потормозить, уйти в себя, все 500 микросекунд. Отлично почитать, чтобы понимать, насколько быстро современные аллокаторы отдают память.

3. https://arxiv.org/pdf/2205.05982.pdf

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

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

4. Возможно в ближайшее время будут посты попроще или поменьше. Точно есть ещё на пару недель и один огромный пост, а дальше как-то список закончился. Я расту в Google, мне тяжело, я едва успеваю делать что-то вне работы, плюс ещё полно интересных вещей в обычной смертной жизни происходит. Никогда не думал, что это будет настолько тяжёлая проблема, скейл команды и продукта (а ещё и себя самого), мы растем по количеству пользователей, всем метрикам, а из-за этого количество всех corner case багов увеличивается, нагрузка на support увеличивается и просто уже не хватает ни времени, ни сил. В прошлый раз, когда я чувствовал себя так, я уходил из проекта. На этот раз хочется встретиться с этим и попытаться вытащить продукт на следующий уровень хотя бы 2х по всем параметрам. А 2х по меркам Google это, конечно, очень сложно, и, наверное, самое сложное это community и поддержка проекта, технически уж справимся. Новые испытания, uncomfortably exciting! :)
oreilly-report-what-is-distributed-sql.pdf
2.6 MB
O’Reilly и CockroachDB выкатили. Читается легко.

Paul Modderman, Jim Walker, Charles Custer. What Is Distributed SQL? Scale, Resilience, and Data Locality for Modern Applications. 2022.
​​🚘 Конкурс от Waves.Exchange. Скам или возможность пополнить гараж Lamborghini Huracan?

Вряд ли среди криптанов остались еще те, кто не слышал о возможности выиграть реальную Ламбу просто инвестировав стейблы в пул Lambo Investments под 63,7% годовых.

🤔 Звучит шикарно, но так ли это?

Во-первых, у всех олдов сразу после объявления конкурса возник вопрос «А что собственно произошло с предыдущей ламбой, которую Waves разыгрывал примерно год назад?». Где фотки счастливого победителя? Почему нет видео с церемонии передачи спорткара Сашей Ивановым?

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

• Общая сумма инвестиций : $ 42,370,392
• Количество участников : 11,124
• Общий профит участников : $ 6,366,148
• Адрес победителя : 3P4BgbsiezRgCKxqVMfTBL5PfXJjHVmMSDh
• Транзакция на: 240,000 : https://wavesexplorer.com/tx/8MYvJn9RBXLabMJvg6uke64Zd71CVY83aNEf3XB1tSYp

Победитель был выбран при помощи прокачанного рандомайзера https://random.wavesplatform.com/. Для особо придирчивых весь механизм работы описан на сайте.

Если оценить объективно, для команды Waves $250 000 — это не столь большая сумма. Затраты на антикризисный пиар с целью усмирения вейвс фанов в случае вычисления скама будут в разы выше.

🎁 Чтобы принять участие в новом конкурсе на Ламбу и заодно задепозитить стейблы под 63,7%, переходите по ссылке: Waves.Exchange


📑 Дисклеймер #реклама
Forwarded from Блог*
#prog #rust #c #video

Unsafe Rust is not C

Или об отличиях в правилах, нарушение которых приводит в C и в Rust к UB, к чему UB может привести на практике и как эти правила выливаются в ограничения и возможности для оптимизации.
Forwarded from Блог*
#prog #math #article

Написано на удивление доходчиво.

High Performance Correctly Rounded Math Libraries for 32-bit Floating Point Representations

Everyone uses math libraries (i.e., libm), which provide approximations for elementary functions. Surprisingly (or not), mainstream math libraries (i.e., Intel’s and GCC’s libm) do not produce correct results for several thousands of inputs! Developers of modern software systems are seldom aware of them, which affects the reproducibility and portability of software systems. This blog post describes our new method for synthesizing elementary functions that produces correct results for all inputs but is also significantly faster than the state of the art libraries, which have been optimized for decades.

<...>

The overall goal of our RLIBM project is to make correctly rounded elementary functions mandatory rather than a recommendation by the standards (at least for 32 bits or lower). In our RLIBM project, we have been making a case for generating polynomials that approximate the correctly rounded result of f(x) rather than the real value of f(x) because our goal is to generate correct, yet efficient implementations. By approximating the correctly rounded result, we consider both approximation errors (i.e., polynomial approximation) and rounding errors (i.e., with polynomial evaluation with finite precision representations), which enables the generation of correct results. One can use existing high-precision libraries, which are slow, to generate oracle correctly rounded results. Now our goal is to generate efficient polynomials that produce these correctly rounded results for all inputs. Given a correctly rounded result, there is an interval of real values around the correct result that the polynomial can produce, which still rounds to the correct result. This interval is the amount of freedom available that our polynomial generator has for a given input. Using this interval, our idea is to structure the problem of polynomial generation that produces correct results for all inputs as a linear programming (LP) problem. To scale to representations with a large number of inputs, we propose counterexample guided polynomial generation, generate piecewise polynomials rather than a single polynomial, and develop techniques that support various complex range reductions.
🥶 Как пережить криптозиму?

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

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

Они актуальны в любой стадии рынка. Люди всегда будут пользоваться коммунальными услугами, ходить в Макдональдс, покупать Coca-Cola.

🛡 Работает ли эта стратегия на крипторынке?

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

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

Все они работают по одному и тому же принципу:
• У вас есть какая-то криптовалюта, например ETH или USDT
• Вы закидываете её на платформу (как депозит) и получаете за это вознаграждение

Если вы плохо разбираетесь в DeFi, то можно начать с Binance Earn, Bybit Earn или OKX Earn. На этих биржах есть все инструменты для этого и подробные инструкции. А продвинутые пользователи могут посмотреть список DeFi-платформ на Defipulse.

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

💼 В экспериментальный портфель сегодня докупаем Ethereum.