Пишу на C++. Специализируюсь на параллельных системах и высокопроизводительных вычислениях. Разбираюсь с многопоточностью, CUDA и рендерингом на практике, через собственные проекты, а не по статьям.
Сейчас развиваю движок симуляций: заменяемые CPU/CUDA-бэкенды, разделение симуляции и рендера по потокам, оптимизация вычислительного ядра под память GPU.
Ищу первую работу, junior C++ (системы, графика, вычисления). Открыт к Qt / CAD / embedded / gamedev.
- Многопоточность: собственный тред-пул; симуляция и рендер разведены по потокам без гонок; синхронизация через фазовый барьер на атомиках (
Idle → Computing → ReadyToCommit → Committing), вычисление и коммит гарантированно не пересекаются во времени. - GPU / CUDA: пишу вычислительные ядра, работаю с иерархией памяти (shared memory, тайлинг). Ускорил ядро до 10.6× против однопоточного CPU на поле 2048×2048, а ниже 512×512 выигрыша нет вовсе: запуск и обмен по PCI-E стоят дороже самой работы. Замер упирается в передачу, а не в вычисления, ядро использует около 1.3% пропускной способности карты. Разбор в docs/BENCHMARKS.md.
- Графика: рендерер на OpenGL с нуля: шейдеры, VBO, текстуры, палитры, камера. Пробовал CUDA-GL interop.
- Архитектура: разбиваю god-классы на компоненты с одной ответственностью, прячу бэкенды за интерфейсами (
ISimulationBackend: CPU и CUDA взаимозаменяемы, остальной код не знает, что получил).
Tessera: 2D движок симуляций на C++/CUDA/OpenGL Чанковый мир: симулируются только живые чанки, состояние само расползается в соседние. Симуляция и рендер в отдельных потоках, собственный тред-пул, CUDA-бэкенд с shared-memory тайлингом (до 10.6× к однопоточному CPU). Бэкенд симуляции за одним интерфейсом: один код работает и на CPU, и на GPU без переписывания. ImGui-интерфейс, CI на GitHub Actions (Windows + Linux, ThreadSanitizer).
На движке три самостоятельные демки, каждая в своём репозитории (подтягивают Tessera через CMake FetchContent):
HexLife: игра «Жизнь» Конвея: загрузка .rle-паттернов, интерактивное рисование, запись GIF.
WaveLight: свет как волновое поле на гекс-сетке: хроматическая дисперсия R/G/B, рисуемая призма, направленный луч.
Дальше в планах: отдельный физический бэкенд за тем же интерфейсом: волновое уравнение (FDTD) и векторные поля.
Wormy: симуляция тела и нервной системы C. elegans на движке Tessera Настоящий коннектом из 401 нейрона (Cook et al. 2019) через разреженный неспайковый интегратор сети управляет физическим телом: активность сети → кривизна мышц → сегментированное тело → resistive-force-theory физика на анизотропном субстрате → положение и ориентация. Никакой скриптованной локомоции: движение целиком следствие нейронной активности.
| Уверенно | C++17 · многопоточность · OpenGL · CMake · Git |
| Базово | CUDA · GLSL · Python · Linux |
| Инструменты | Dear ImGui · GLFW · GLAD · GLM · Ninja · GitHub Actions · MSVC |
- Email: mishabertyaev@gmail.com
- Telegram: @wanfik
- Discord: wonfik




