Научно-образовательный центр “Газпромнефть-НГУ” ищет математика-программиста для работы с научно-нагруженным кодом. Центр был создан в Новосибирском государственном университете с целью выполнения договорных научно-исследовательских работ по развитию технологий разведки и добычи углеводородов, а также для подготовки высококвалифицированных специалистов для работы в R&D-центрах компаний нефтегазовой отрасли и научно-исследовательских институтах. В работе над проектами центра участвуют коллективы научных организаций и инновационных компаний Академгородка.
В проект “Цифровой модели керна” требуется математик-программист для решения ряда вспомогательных задач, которые включают в себя:
- реализацию на C++ известных численных алгоритмов для решения задач вычислительной гидродинамики
- программную оптимизацию и распараллеливание вычислительных алгоритмов
- реализацию операций с расчетными сетками, алгоритмов решения СЛАУ
- разработку модулей сохранения/загрузки данных в различных форматах
- написание Python скриптов для автоматизации рутинных задач
- доработку существующего Python и C++ кода, в том числе сторонних расчетных библиотек
- сборку кода на вычислительных кластерах, проведение расчетов, постобработку данных
- исправление ошибок и профилировку кода
Для эффективной работы с научно-нагруженным кодом, помимо навыков разработчика, от программиста требуется физико-математическая подготовка. В случае успешной работы и наличия квалификации достаточной для самостоятельной реализации математических моделей в коде возможен карьерный рост до специалиста по математическому моделированию с повышением заработной платы.
Обязательные требования:
- высшее техническое образование (математика, физика или программирование)
- опыт разработки на C++ (стандарт 11 и выше), Python
- опыт работы в Linux и системы контроля версий Git
- опыт разработки MPI-распараллеленных наукоёмких кодов для решения прикладных задач в области математического моделирования (решение СЛАУ, вычислительная газодинамика)
- знание какого-либо из численных методов решения систем уравнений в частных производных: метода конечных элементов, объёмов или разностей; знание методов решения СЛАУ
- знание английского языка на достаточном уровне для чтения документации
Желательно:
- умение работать со сторонним Open Source кодом (способность собрать сторонний проект на make или cmake, разбираться в чужом коде)
- опыт работы с научными Open Source проектами, например PetSc, FEniCS или OpenFOAM
- научные публикации в области численного моделирования
- знание новых стандартов C++17-20
Также будет плюсом степень кандидата физико-математических наук.