По моему опыту (17 лет фулл тайм, отсобеседовал под сотню кандидатов), было примерно поровну программисток — линейных, rock star и пассажирок, дельцов было очень мало.
Регуляторы — это хорошо, но нужны корсчета в других банках, а это уже не к регуляторам, а вопрос отношений с этими другими банками. Об этом и был вопрос выше.
Подкрутить к DPDK user mode TCP стэк — обычный пример, но мощИ обычно хватает, если сначала в dpdk app смотреть на пакетик, и отдавать TCP стэку только избранные, редкие flow.
>копируется в основную память с помощью механизма DMA — Direct Memory Access
На достаточно свежем железе, копируется в last level cache того сокета, откуда инициировали DMA. И уже оттуда в память.
Вообще, хороший tutorial, но у читателя может сложиться впечатление (так как имеется сравнение с сетевым стеком линукс), что в dpdk есть сетевой стек, и он, например, умеет работать с tcp — собирать tcp, устанавливать соединение и тд.
Юрий, отличный пост! Но уж очень разные темы подняты, и их слишком много для нормального восприятия как цельной статьи. Например, та часть, что о беседах с «техно-феминистками», очень хороша; мог бы получиться отличный отдельный пост об особенностях карьеры.
А, тогда ладно. Но бранч предикт, кэширование, simd и gpu принципиально на arm не отличается. Так что вся эта гонка за % CPI за счет небольшой оптимизации текущих боттлнеков в конвейере продолжается надолго. Есть конечно и технологии 90х а не 70х, но про них, когда/если придет время, расскажет большой босс на IDF.
Архитектурные энергозатраты? Вы имеете в виду декодер x86 инструкций во фронтенде? Посмотрите на кристалл даже не Xeon, а Атом, и найдите сколько он по площади занимает. Лет 15 назад это еще был какой-то ощутимый %, а теперь — сотые доли % если не тысячные.
Только чтобы подключить старое железо — старше broadwell и skylake, или редкое/мелкое. Весь зоопарк постоянно держать подключеным места не хватает, да и зачем — очень редко нужно.
Можно, даже если другие VM работают на других ядрах. Но для многопроцессорного сервера — только соседей по процессору. VM можно запрограмировать это ловить и давать таким гостям совсем мало тактов, но вроде это нигде пока не реализовано.
WBINV надо быть в ring 0, ее неожиданно в пользовательском коде оказаться не может. Кстати, она сама не очень медленная, тормоза начинаются потом, когда оказывается что кэш пустой.
В Atom еще почти независимое. Но даже там в этом микрокоде полно load/store, которые занимают обычные порты. а в HSW core просто 8 портов, некоторые содержат в том числе execution units, работающие с fp.
На достаточно свежем железе, копируется в last level cache того сокета, откуда инициировали DMA. И уже оттуда в память.
Вообще, хороший tutorial, но у читателя может сложиться впечатление (так как имеется сравнение с сетевым стеком линукс), что в dpdk есть сетевой стек, и он, например, умеет работать с tcp — собирать tcp, устанавливать соединение и тд.