P(hD)ython
214 subscribers
39 photos
26 links
О Python, PhD, распределённых системах и не только

Автор - Михаил Масягин (@masyagin1998):
- Python Lead в NDA HFT;
- преподаватель в Бауманке;
- эксперт по СУБД System Design World;
- любитель PhD и авторегрессии.
Download Telegram
Channel photo updated
Please open Telegram to view this post
VIEW IN TELEGRAM
Во вступлении я сказал, что много где преподаю, и это чистая правда 😋

Недавно я провёл пилотный запуск моего курса «Практика высокопроизводительных систем», читаемого студентам последнего курса бакалавриата и первого курса магистратуры Назарбаев Университета совместно с компанией 7-Generation Group. Предлагаю и Вам ознакомиться с ним!

И сегодня мы поговорим о... Памяти!!!

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

На лекции затронем:
- память на физическом уровне: SRAM & DRAM;
- иерархию кэшей: L1, L2, L3;
- виды кэшей: Memory, Instruction, Data;
- виртуальную память: PTA, TLB;
- аллокаторы: устройство malloc & free в jemalloc
- Huge Pages & Gigantic Pages.

GitHub курса: https://github.com/masyagin1998/hp-systems-course
В коде много преднамеренных и не только ошибок, ищите их 😁

Статьи Дреппера о памяти (можно читать и все, но к 1 лекции относятся первые 3):
https://lwn.net/Articles/250967/
https://lwn.net/Articles/252125/
https://lwn.net/Articles/253361/

man7: free, mmap, brk:
https://man7.org/linux/man-pages/man3/free.3.html
https://man7.org/linux/man-pages/man2/mmap.2.html
https://man7.org/linux/man-pages/man2/brk.2.html

glibc/malloc:
https://github.com/lattera/glibc/blob/master/malloc/malloc.c
https://www.youtube.com/watch?v=i87W3KyZgPw
https://www.youtube.com/watch?v=BTkvaPefAKw

Huge Pages & Gigantic Pages:
https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html

P.S. Даже если Вы не системный программист, эти материалы могут быть для Вас очень полезны. Не так давно я собесился в пару известных HFT/MFT (успешно), и на скринингах/первых собесах было очень много вопросов по памяти.

С уважением,
Михаил Масягин
🔥1333👍2
Про «Институты и цифровизацию»

Мне всегда была интересна новая институциональная экономика - особенно один из её ключевых постулатов о разделении институтов на формальные и неформальные. Хорошую иллюстрацию ему даёт мой собственный путь с кандидатской диссертацией.

Формальные институты говорят, что для успешной защиты необходимо написать 2 статьи в журналах из 1-2 категории ВАК, неформальные добавляют к этому ещё 2-3 статьи из Scopus/WoS и... регистрацию патента на программу для ЭВМ в Роспатенте. Да, без неё формально можно, но неформально - скорее нет 😅

На первый взгляд всё цифровизовано: посылаешь документы через ГосУслуги, оплачиваешь пошлину онлайн и ждёшь заветное сообщение о подтверждении регистрации. Но неожиданно приходит запрос на корректировку подаваемых данных и ... подать корректировку можно либо почтой России, либо очно в офисе Роспатента 😁

Пара советов тем, кто тоже будет патентовать программу:
- сам текст патента должен умещаться на 2-х листах A4, включая введение, основную часть и заключение;
- реферат должен быть строго не более 900 символов, включая пробелы;
- название программы во всех документах должно быть строго идентичным вплоть до ковычек и пробелов.

Тогда вы сможете почувствовать всю мощь цифрового документооборота, и не будете как я 😅

В комментариях приложены шаблоны всех документов для подачи заявки на патент программы для ЭВМ в формате Word

С уважением,
Михаил Масягин
🔥10👍2😁1🍓1
«Как похорошела Бауманка...»

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

Я работаю в Бауманке совместителем уже 2 года и сейчас продлеваюсь на третий год. До осени 2024 года я был оформлен по ТК РФ на основном месте работы в НТЦ «Атлас», но уже год работаю как ИП. Если Вы окажетесь в моей ситуации (ИП + совместительство в вузе) и у вас потребуют справку с основного места работы, то... вы можете выписать её себе сами 😅

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

Очень хороший гайд доступен в блоге Совкомбанка (не реклама, но от копейки не откажусь 😁)

С уважением,
Михаил Масягин
7🔥6👍3
Делаем с Вовой Невзоровым трейлер разбора 8 главы книги Мартина Клеппмана «Высоконагруженные Приложения» - «Проблемы распределённых систем» и немного кринжуем 😁

Я регулярно выступаю на канале https://t.me/system_design_world со стримами, где разбираю Клеппмана aka «кабанчика» 🐗

Половина глав пройдена, так что скоро мы приступим к новой крутой книге по System Design!

🎥 Записи стримов можно посмотреть на YouTube.

С уважением,
Масягин Михаил
5🔥5👍2
P(hD)ython
Во вступлении я сказал, что много где преподаю, и это чистая правда 😋 Недавно я провёл пилотный запуск моего курса «Практика высокопроизводительных систем», читаемого студентам последнего курса бакалавриата и первого курса магистратуры Назарбаев Университета…
А вот и... вторая лекция!

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

На лекции поговорим о:
- процессах & потоках;
- атомарных операциях:
- race condition & data race;
- spinlock;
- блокирующей синхронизации:
- mutex, condvar, semaphore;
- futex syscall;
- о... языке Go!
- кэшах в многопоточных программых: MESI

GitHub курса: https://github.com/masyagin1998/hp-systems-course
В коде всё ещё много ошибок 😁

ТПМС - отличный курс от Романа Липовского из МФТИ по Concurrency. Глубже ещё ничего не встречал. Нам будут актуальны лекции:
- ТПМС / Лекция 2 / Взаимное исключение
- ТПМС / Семинар 3 / Futex, Memory Orders

Как устроен PAUSE в процессоре:
https://c9x.me/x86/html/file_module_x86_id_232.html

man7: mutex, condvar, semaphore
https://man7.org/linux/man-pages/man3/pthread_mutex_lock.3.html
https://man7.org/linux/man-pages/man3/pthread_cond_wait.3.html
https://man7.org/linux/man-pages/man3/sem_init.3.html
https://man7.org/linux/man-pages/man2/futex.2.html

futex:
https://github.com/torvalds/linux/blob/master/kernel/futex/waitwake.c

Гуляем по коду Go (не пугайтесь, знать наизусть не надо, я тоже не знаю):
https://github.com/golang/go/blob/master/src/sync/mutex.go
https://github.com/golang/go/blob/master/src/internal/sync/mutex.go
https://github.com/golang/go/tree/master/src/internal/race
https://github.com/golang/go/blob/d37624881f60f79dfba4ef81661024bee9dfc2d3/src/runtime/lock_futex.go

MESI:
https://lwn.net/Articles/252125/
https://www.youtube.com/watch?v=3NmyqUmvlbQ&list=PL4_hYwCyhAva37lNnoMuBcKRELso5nvBm&index=7
https://www.scss.tcd.ie/jeremy.jones/vivio/caches/MESIHelp.htm

P.S. Даже если Вы не системный программист, эти материалы могут быть для Вас очень полезны. Не так давно я собесился в пару известных HFT/MFT (успешно), и на скринингах/первых собесах помимо вопросов о памяти (1 лекция) было много вопросов и по многопоточной синхронизации.

С уважением,
Михаил Масягин
🔥12👍52
«Экспертные заключения и котики»

Мне регулярно приходится получать экспертные заключения на статьи, которые мы публикуем с научным руководителем (Владимир Борисович, здравствуйте! 👋)

Обычно на факультете это занимает 2–3 недели. Причём обязательно нужно соединять парные листы канцелярской скрепкой и приклеивать на каждый титульный лист стикер с пояснением, для чего нужен документ.

В этот раз у меня были только стикеры с котиками 😺 — и… всё подписали меньше чем за неделю! Похоже, на факультете тоже любят котиков 🐈😻🐈‍⬛️

Своего рода лайф-хак 😁

С уважением,
Михаил Масягин

P.S. А ведь можно провести A/B-тест, подавая статьи с котиками и без, и сравнивать время их подписания. А потом написать об этом статью и... подать её тоже С КОТИКАМИ! 😺
🔥9😁5👍2
«FPGA & HFT»

Я ни разу не специалист в сфере FPGA, но за последние пару недель несколько подписчиков одновременно спрашивали меня о том, как FPGA используется в трейдинге. Делюсь с вами тем, что знал и что узнал 😅

FPGA (Field Programmable Gate Array) - это микросхема, в которой вы сами программируете логику на уровне логических блоков и соединений между ними. Если ядро CPU выполняет инструкции последовательно (опуская детали ILP и SIMD), то FPGA сразу раскладывает их в виде аппаратного конвейера, где множество операций идут параллельно, и с минимальными задержками.

Безусловно, передача данных между FPGA и CPU вносит дополнительную задержку, но грамотная архитектура с буферизацией, минимизацией пересылаемого объёма данных и zero-copy позволяет сделать оверхед пренебрежимо малым.

В HFT (High-Frequency Trading) FPGA чаще применяют для работы с классическими биржами, которые предоставляют коллокацию - размещение ваших торговых серверов в дата-центрах биржи, компактные бинарные протоколы и т.д., нежели с криптобиржами. На них можно эффективно реализовать:

- кодирование и декодирование маркет-даты (ITCH, OUCH и прочие бинарные данные);
- построение книги заявок;
- быстрые проверки лимитов и позиций до отправки заявки;
- генерацию несложных торговых сигналов и фильтрацию биржевых шумов;
- в отдельных случаях значительную часть торговой логики!

И всё это до того, как данные попадут на CPU!

К сожалению, есть у такого подхода и ряд существенных недостатков. Ключевые из них:
- сложность разработки и отладки, и, как следствие, значительное повышение time-to-market;
- проблемы с поиском FPGA-разработчиков - их рынок очень маленький, особенно по сравнению с нами - питонистами 😅;
- чрезвычайно (!!!) высокая стоимость FPGA-решений.

В комментариях приложены ссылки на статьи по теме и даже... пара русскоязычных вакансий на стыке FPGA и HFT, которые я нашёл ☺️

С уважением,
Михаил Масягин
🔥8💯53🤔2
«Курсы & Мерч»

Как и положено любому уважающему себя айтишнику, добрую половину моего гардероба составляет «мерч» - худи, футболки, кепки, значки. Удобно и практично 😅

Пару дней назад пришли особенно ценные для меня экземпляры - футболка и стикеры курса по System Design от System Design World, где я выступал в роли соавтора: читал лекции по базам данных, делился опытом прохождения System Design Interview и, конечно, отвечал на вопросы. До этого я преподавал только в вузах, а тут - интенсивный практический курс для разработчиков с опытом. Было волнительно, но ни разу не пожалел! 💪

Курс получился живой и интересный: обсуждали как строить RAG'и и DWH, ругали CAP и PACELC, пытались чинить конфликты в multi-master'ах и холиварили на тему того, можно ли всё запихать в Neo4j 😂

Огромное спасибо @vova_dev за доверие и возможность поучаствовать в таком крутом проекте, а участникам - за вопросы и жаркие обсуждения!

P.S. Инсайд: второй поток на подходе 👀

С уважением,
Михаил Масягин
👍95🔥3
Заглянул на огонёк к @vova_dev на канале System Design World!

Поговорили о траназакциях, выкинули букву I из ACID и узнали, что REPEATABLE READ в PostgreSQL вовсе и не REPEATABLE READ... 😅
Буду рад вашим просмотрам и комментариям под роликом на YouTube! ❤️

P.S. Дел было ооочень много, но скоро продолжу радовать вас новыми лекциями по системному программированию на своём канале 💪

С уважением,
Масягин Михаил
👍92🤩2
Forwarded from System Design World (Владимир в IT)
🧠💡 Транзакция в СУБД. Клеппманн 7 глава. BEGIN!

✔️ Что такое транзакция?
✔️ Составляющие ACID в реальности
✔️ Уровни изоляций в СУБД
✔️ Подробней о Read Commited
✔️ Особенности Репликации в контексте транзакций
✔️ Применение полученных знаний в System Design Интервью и на работе
✔️ Варианты прокачки в СУБД в контексте System Design

COMMIT

Всё это за насыщенные 55 минут.
Автор разбора - Михаил Масягин.
Преподаватель System Design Интенсива.

👀 Смотреть - Youtube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍4🎉4
«System Design & Counter Strike»

Встретился с ребятами из System Design World — обсудили System Design, рынок IT в РФ в 2025, банки, HFT и стартапы. Обменялись мыслями и смешными историями из индустрии 🚀.

Для баланса сыграли вместе в VR-версию Counter Strike: я бегал с пулемётом и прикрывал @vova_dev, идущего с дробовиком в атаку на вражеские позиции 🔫! Никогда бы не подумал, что играя в CS можно вспотеть не меньше, чем в тренажёрном зале 😅

С уважением,
Михаил Масягин
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥74
«Если ваши ночные релизы не похожи на это, не зовите меня 😁»
🔥11💅4🙏3😁1
«Ну что, работяги, пора становиться волками!» 🐺

#профсоюзная
https://unionconf.ru/

Я редко выбираюсь на конференции, но мимо такого события пройти не смог - IT-конференция Профсоюзная от Антона Назарова и «Осознанной меркантильности».

Скажу честно: история с одновременной тайной работой на нескольких работодателей мне не близка. У меня был другой опыт - почти три года я совмещал работу в американско-дубайском стартапе и российском ИБ, причём обе стороны знали друг о друге. Для меня «осознанная меркантильность» — это не про количество работодателей, а про уважение к своему времени, умение считать деньги и трезвый взгляд на профессию и карьеру 🚀.

Очень хочу послушать выступления Олега Козырева и Максима Аверина, так как и сам совместно с @voda_dev занимаюсь образованием в сфере IT 📚.

Если тоже окажетесь там - пишите, будет классно пересечься 👋

P.S. Говорят, там будет конкурс волчьих костюмов — может, прикупить маску?.. 😅🐺

С уважением,
Михаил Масягин
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93👍2😱1