История изменений
Исправление aist1, (текущая версия) :
Вот бы научиться эти стелсовые проекты из своих московий находить
Если ты рассматриваешь релокацию, то я рекомендовал бы Китай. Они сейчас инженеров пылесосом высасывают. Но я бы не поехал, Китай — это такое... Поработать и обязательно вернуться.
Работать с американскими компаниями без релокации может оказаться проблематично, так как regulations. Export control, короче. Тут мало находиться на территории Штатов, тут еще и GC нужно иметь как минимум. Но значительная часть железа под экспортный контроль не попадает, так что всё может быть.
По моему опыту, «рассылать резюме» бесполезно. Нужно искать людей в Linkedin и выходить на них, заинтересовывать, чтобы они двигали. Даже сидючи здесь, в Штатах, это — основной способ попасть туда, куда тебе надо с гарантией.
Если хочется именно в России что-то поднять, с выходом на мировой рынок, то я бы заходил через storage, а не через те же CPU/MCU. Поясню ниже.
Мимикрокодильный коллега навскидку поинтересовался: memoria vs https://github.com/arximboldi/immer
Разница примерно такая же, как между Postgresql и STL. Immer — это классический С++-идеоматический фреймворк для иммутабельных (функциональных) STL-like контейнеров, работающих в RAM.
Memoria ориентирована на продвинутые структуры данных типа сжатых пространственных индексов, смешанных распределений вероятностей и т.п., для поддержки алгоритмов ИИ. Вот, например, есть модель RL-агента MC-AIXI-CTW. Для таких вещей Меморию можно использовать для представления распределения вероятностей, которое этот агент использует для ситуативного вывода. Вообще, вероятностное программирование — тема. Но там есть проблемка. Вероятностные алгоритмы есть, а вероятностных структур данных (кодирующих распределения вероятностей) — нет. Ну и железо специальное надо для сэмплинга. И будет next big thing (нет).
А всякая мелочь типа Map<K,V>, Vector<V>, Table<> и т.п. — это попутный продукт, получаемый специализацией простых контейнеров.
Ну и последнее отличие в том, что в Мемории создается полный стек от физического хранения данных на устройствах до execution. Причем с ориентацией на акселераторы, что поддерживается внутренними структурами данных. Вот я сейчас вылизываю SWMRStore (Single Writer Multiple Readers), которые внутри похож на LMDB (CoW over mmap), но только имеет consistency points, бранчики и историю. И систему типов Мемории сверху. Голый LMDB не получится использовать как файловую систему, так как будет дикая фрагментация, а SWMRStore — можно. Получится что-то типа «ZFS на стероидах», но только с атомарной/транзакционной семантикой уровня приложений. Скорости хватит.
Сейчас SWMRStore сделан над mmap (так пока что проще), но в Мемории есть кроссплатформенная подсистема асинхронного ввода-вывода над AIO/epoll/uring/IOCP/kqueue и Boost Fibers. Так что прямая работа с высокопроизводительными NVMe-устройствами (SPDK) не представляет технической проблемы.
Древнюю версию Мемории я использовал для того, чтобы оживить во эту тогда еще экспериментальную ETL-платформу.
Мне сейчас нужно отойди, потом поясню, что можно поднять в России в плане storage.
Исходная версия aist1, :
Вот бы научиться эти стелсовые проекты из своих московий находить
Если ты рассматриваешь релокацию, то я рекомендовал бы Китай. Они сейчас инженеров пылесосом высасывают. Но я бы не поехал, Китай — это такое... Поработать и обязательно вернуться.
Работать с американскими компаниями без релокации может оказаться проблематично, так как regulations. Export control, короче. Тут мало находиться на территории Штатов, тут еще и GC нужно иметь как минимум. Но значительная часть железа под экспортный контроль не попадает, так что всё может быть.
По моему опыту, «рассылать резюме» бесполезно. Нужно искать людей в Linkedin и выходить на них, заинтересовывать, чтобы они двигали. Даже сидючи здесь, в Штатах, это — основной способ попасть туда, куда тебе надо с гарантией.
Если хочется именно в России что-то поднять, с выходом на мировой рынок, то я бы заходил через storage, а не через те же CPU/MCU. Поясню ниже.
Мимикрокодильный коллега навскидку поинтересовался: memoria vs https://github.com/arximboldi/immer
Разница примерно такая же, как между Postgresql и STL. Immer — это классический С++-идеоматический фреймворк для иммутабельных (функциональных) STL-like контейнеров, работающих в RAM.
Memoria ориентирована на продвинутые структуры данных типа сжатых пространственных индексов, смешанных распределений вероятностей и т.п., для поддержки алгоритмов ИИ. Вот, например, есть модель RL-агента MC-AIXI-CTW. Для таких вещей Меморию можно использовать для представления распределения вероятностей, которое этот агент использует для ситуативного вывода. Вообще, вероятностное программирование — тема. Но там есть проблемка. Вероятностные алгоритмы есть, а вероятностных структур данных (кодирующих распределения вероятностей) — нет. Ну и железо специальное надо для сэмплинга. И будет next big thing (нет).
А всякая мелочь типа Map<K,V>, Vector<V>, Table<> и т.п. — это попутный продукт, получаемый специализацией простых контейнеров.
Ну и последнее отличие в том, что в Мемории создается полный стек от физического хранения данных на устройствах до execution. Вот я сейчас вылизываю SWMRStore (Single Writer Multiple Readers), которые внутри похож на LMDB (CoW over mmap), но только имеет consistency points, бранчики и историю. И систему типов Мемории сверху. Голый LMDB не получится использовать как файловую систему, так как будет дикая фрагментация, а SWMRStore — можно. Получится что-то типа «ZFS на стероидах», но только с атомарной/транзакционной семантикой уровня приложений. Скорости хватит.
Сейчас SWMRStore сделан над mmap (так пока что проще), но в Мемории есть кроссплатформенная подсистема асинхронного ввода-вывода над AIO/epoll/uring/IOCP/kqueue и Boost Fibers. Так что прямая работа с высокопроизводительными NVMe-устройствами (SPDK) не представляет технической проблемы.
Древнюю версию Мемории я использовал для того, чтобы оживить во эту тогда еще экспериментальную ETL-платформу.
Мне сейчас нужно отойди, потом поясню, что можно поднять в России в плане storage.