Azul
Bangalore, Индия13 дней назад
Falcon — это оптимизирующий компилятор JIT (Just-In-Time) в Azul Platform Prime. Он компилирует горячий Java байт-код в высокооптимизированный машинный код и обеспечивает производительность Java, недостижимую для стандартных JVM. Falcon построен на базе LLVM. Мы ищем старшего инженера по производительности компилятора, который возьмет на себя ответственность за основные области производительности Falcon. Это не роль для работы с фронтендом компилятора и не создание компилятора с нуля: Falcon — зрелый продукт, используемый в крупных корпоративных средах. Ваша задача — дальнейшее совершенствование генерируемого им кода, определение того, какие оптимизации важны, их проектирование и достижение измеримых ускорений на реальных рабочих нагрузках. Вы будете работать в распределенной команде экспертов по компиляторам, напрямую влияя на то, что Falcon будет оптимизировать дальше.
Что вы будете делать (обязанности) Полная ответственность за производительность Falcon для набора рабочих нагрузок или области оптимизации: анализ, проектирование, реализация, валидация. Проектирование и реализация новых оптимизаций и улучшение существующих в middle end и back end: эвристики встраивания (inlining heuristics), оптимизация циклов (loop optimizations), векторизация (vectorization), анализ выхода за пределы (escape analysis), спекуляция и деоптимизация (speculation and deoptimization), оптимизация барьеров GC и вызовов во время выполнения (GC barrier and runtime call optimization). Повышение качества генерации кода на x86_64 и AArch64, включая адаптацию Falcon к новым аппаратным платформам. Исследование сложных проблем производительности, сообщаемых клиентами, и преобразование полученных данных в улучшения компилятора. Ревью кода, наставничество инженеров в команде и повышение уровня методологии оценки производительности. Внесение вклада в upstream LLVM, где это целесообразно.
Что вы принесете с собой (опыт, навыки) Более 5 лет профессионального опыта разработки оптимизирующих компиляторов или JIT-компиляторов. Сильные навыки проектирования и кодирования на C++ в больших кодовых базах. Подтвержденный опыт внедрения оптимизаций компилятора с измеримым влиянием на производительность. Глубокие знания теории оптимизации компиляторов и практических компромиссов: время компиляции, размер кода, корректность. Сильные навыки анализа производительности: профилировщики (profilers), аппаратные счетчики (hardware counters), чтение и анализ генерируемого ассемблера.
Желательно: Значительный опыт работы с LLVM optimization passes или генерацией кода; доступ commit в LLVM является плюсом. Опыт работы с JIT-компиляторами для управляемых языков: HotSpot C2, Graal, V8, .NET RyuJIT или аналогичными. Глубокие знания микроархитектуры x86_64 и/или AArch64. Опыт работы с внутренними компонентами JVM: сборка мусора (garbage collection), деоптимизация (deoptimization), профилирование (profiling). PhD в области Computer Science или значительный исследовательский опыт в области компиляторов.
Сравним с твоим профилем навыки, уровень, формат работы и зарплату
Оценка RocketHunt по реальным зарплатам
Грейд
Senior
Опыт работы
от 5 лет
Формат работы
Удаленно, Офис
Уровень английского
B2 - Выше среднего
Письмо на почту или сообщение рекрутеру в Telegram