Programming News and Articles
8 subscribers
5 photos
3 files
241 links
Download Telegram
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.
Forwarded from Блог*
Однако.

SWC на Rust написан, если что.
Доклад про монады, почему они везде и возможно лучшие виды записи тех же концептов?

https://www.youtube.com/watch?v=nGhoZzihbHY

p.s. доклад максимально beginner friendly, так что даже если ничего не знаете про монады, всё равно посмотрите <3
Forwarded from Блог*
#prog #rust #article

Набор из трёх статей Niko Matsakis про дизайн параллельных итераторов в rayon. Впрочем, первая статья посвящена обзору обычных, последовательных итераторов. Если у вас есть опыт работы с Rust — первую статью можно спокойно не читать.

Parallel Iterators Part 1: Foundations
Parallel Iterators Part 2: Producers
Parallel iterators, part 3: Consumers

И ещё небольшой документ в репе rayon о том, как реализовывать параллельные итераторы.
Forwarded from AWS Notes
​​🔐 Взлом RSA 2048 с помощью квантовых компьютеров ⁉️

🇨🇳 22 декабря 2022-го года было опубликовано исследование китайских учёных, где говорится о возможности взлома RSA 2048 с применением квантовых компьютеров, доступных уже сейчас, а не лет через 10, как до этого предполагалось.

🔑 С помощью предложенного алгоритма удалось вычислить 2048-битный ключ на компьютере с 372 кубитами, в то время, как ранее для такого предполагалось, что потребуется 4000-8000+ кубитов, из чего и делалось предположение NIST, что такая технологическая возможность будет достигнута лишь к тридцатым годам.

📌 Известный гуру по безопасности Bruce Schneier
написал в своём блоге, что к этому нужно относиться очень серьёзно:

https://www.schneier.com/blog/archives/2023/01/breaking-rsa-with-a-quantum-computer.html

📚 Roger Grimes, автор книги Cryptography Apocalypse: Preparing for the Day When Quantum Computing Breaks Today's Crypto, нагнетает ещё больше в своей заметке «Has the Quantum Break Just Happened?»:

https://community.spiceworks.com/topic/2472644-has-the-quantum-break-just-happened

💻 Где говорится, что 432 кубита ломают RSA 2048, в то время как IBM уже в этом году грозится выпустить 1000-кубитный компьютер. В частности про этот прогноз было на слайдах re:Invent 2020 — Building post-quantum cryptography for the cloud.

Он также отмечает, что данное исследование делает уязвимым все Lattice-based алгоритмы, которые были совсем недавно приняты NIST в качестве защиты для Post Quantum эпохи шифрования.

🔒 Со своей стороны отмечу, что уже доступный в AWS KMS алгоритм BIKE, который попал в NIST PQC Round 4, принадлежит к Code-based типу алгоритмов и потому не попадает под этот вектор атаки. Если, конечно, всё это подтвердится (исследование будет доказано). 😀

🔺Но даже если и не подтвердится, то, всё равно — тема обеспечения безопасности во "внезапно" наступившей эпохе квантовых компьютеров — резко возрастёт, когда все осознают, что чуть меньше, чем всё, базирующееся на привычном ассиметричном шифровании (HTTPS, WiFi, Auth etc), может быть взломано.

🎄 С новым квантовым годом! 😁

#security #KMS
Forwarded from Блог*
#prog #performancetrap #video

"Performance Matters" by Emery Berger

Фактически презентация двух инструментов для анализа производительности.

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

Второй инструмент (более живой) — это coz, causal profiler. Этот профайлер позволяет ценой небольших аннотаций исходного кода оценить, насколько сильно изменение производительности одного компонента сказывается на производительности системы в целом. Так как просто взять и ускорить код невозможно, coz достигает требуемых эффектов за счёт замедления всех остальных компонентов. В видео рассказывается о том, как coz помог в реальных случаях, на какие неожиданные узкие места указывал и о том, насколько хорошо замеренные прибавки в производительности согласовывались с предсказаниями инструмента.

Забавно, что это видео я уже смотрел, Даня упоминал coz у себя на канале, но только сейчас наткнулся на него снова и выложил у себя.