Опис послуги
ПерекладЯ Fortran-розробник, спеціалізуюся на наукових та високопродуктивних обчисленнях, і вже багато років живу всередині чисельного коду, до якого інші бояться прикасатися. Моя щоденна робота — писати швидкі та коректні симуляції, розв'язувачі та конвейєри обробки даних на сучасному Fortran (від 77 до 2008/2018) та змушувати їх ефективно працювати на багатоядерних машинах та кластерах. На відміну від тих, хто за звичкою береться за Julia, MATLAB або C++, я свідомо залишаюся у світі Fortran: для щільних чисельних циклів, лінійної алгебри та спадкового наукового софту він залишається найщирішим та найпередбачуванішим інструментом. Мені важлива чисельна стійкість, відтворюваність та правильна фізика, а не тільки те, що код компілюється.
Велика частина моєї роботи — спасіння та модернізація. У дослідницьких групах та інженерних командах часто є Fortran-код віком в десятки років: він ще й далі видає результати, на які всі опираються, але ніхто вже не пам'ятає, як він влаштований. Я акуратно рефакторю такий код, додаю тести та документацію, замінюю фіксовану форму та спагеті на чисті модулі, вбудовую його в системи збірки та CI, не змінюючи саму науку. Коли мета — швидкість, розпаралелюю через OpenMP та MPI, налаштовую доступ до пам'яті та векторизацію, чесно профілюю, щоб бачити, куди реально йде час. При необхідності зв'язую ядра на Fortran з Python або C для інструментів та візуалізації.
Якщо у вас є занадто повільний розв'язувач, симуляція, яку потрібно розширити, або стара наукова програма, якій випаде прожити ще десятиліття, — я допоможу. Пояснюю компроміси простою мовою, тримаю результати перевіряємими на кожному кроці та видаю код, який ваша команда зможе підтримувати й без мене.
— Розробка на сучасному Fortran (від F77 до 2008/2018), модулі та чисті інтерфейси
— HPC та паралельні обчислення через OpenMP та MPI на кластерах
— Чисельні методи: лінійна алгебра, розв'язувачи ОДУ/УрЧП, інтегрування, оптимізація
— Симуляції та моделювання для фізики, інженерії та прикладної математики
— Спасіння спадкового коду: рефакторинг, тести, збірка, документація
— Профілювання продуктивності, векторизація та налаштування пам'яті
— Зв'язка Fortran з Python та C для інструментів та візуалізації
Велика частина моєї роботи — спасіння та модернізація. У дослідницьких групах та інженерних командах часто є Fortran-код віком в десятки років: він ще й далі видає результати, на які всі опираються, але ніхто вже не пам'ятає, як він влаштований. Я акуратно рефакторю такий код, додаю тести та документацію, замінюю фіксовану форму та спагеті на чисті модулі, вбудовую його в системи збірки та CI, не змінюючи саму науку. Коли мета — швидкість, розпаралелюю через OpenMP та MPI, налаштовую доступ до пам'яті та векторизацію, чесно профілюю, щоб бачити, куди реально йде час. При необхідності зв'язую ядра на Fortran з Python або C для інструментів та візуалізації.
Якщо у вас є занадто повільний розв'язувач, симуляція, яку потрібно розширити, або стара наукова програма, якій випаде прожити ще десятиліття, — я допоможу. Пояснюю компроміси простою мовою, тримаю результати перевіряємими на кожному кроці та видаю код, який ваша команда зможе підтримувати й без мене.
— Розробка на сучасному Fortran (від F77 до 2008/2018), модулі та чисті інтерфейси
— HPC та паралельні обчислення через OpenMP та MPI на кластерах
— Чисельні методи: лінійна алгебра, розв'язувачи ОДУ/УрЧП, інтегрування, оптимізація
— Симуляції та моделювання для фізики, інженерії та прикладної математики
— Спасіння спадкового коду: рефакторинг, тести, збірка, документація
— Профілювання продуктивності, векторизація та налаштування пам'яті
— Зв'язка Fortran з Python та C для інструментів та візуалізації