Друзья,
Сегодня обсудим, как язык Julia в Engee стирает границы между низкоуровневым и высокоуровневым программированием. Для примера разберем наш демо-проект по решению уравнений акустической волны, где Julia выступает мостом между скоростью и удобством.
Сегодня обсудим, как язык Julia в Engee стирает границы между низкоуровневым и высокоуровневым программированием. Для примера разберем наш демо-проект по решению уравнений акустической волны, где Julia выступает мостом между скоростью и удобством.
🔗 Вы тоже хотите глубже погрузиться в Julia? Присоединяйтесь к Зимней школе!
Сперва рассмотрим два полюса программирования:
«Низкий уровень» (например, C) ⚙️
+ Прямой доступ к памяти и высокая производительность
– Ручное управление ресурсами усложняет разработку
«Высокий уровень» (например, Python) 🐍
+ Интуитивный синтаксис и быстрое прототипирование
–Серьезные потери скорости на абстракциях
+ Прямой доступ к памяти и высокая производительность
– Ручное управление ресурсами усложняет разработку
«Высокий уровень» (например, Python) 🐍
+ Интуитивный синтаксис и быстрое прототипирование
–Серьезные потери скорости на абстракциях
А как Julia объединяет преимущества?
В нашем проекте мы демонстрируем:
🔹Оптимизацию критических участков кода через встраивание функций с помощью @inline,
🔹Анализ сгенерированного «ассемблера» при помощи @code_llvm,
🔹Ускорение с помощью применения кортежей вместо массивов,
🔹Реализацию метода конечных разностей для гиперболических уравнений,
🔹Визуализацию с настраиваемым шагом при помощи Plots.jl.
🔹Оптимизацию критических участков кода через встраивание функций с помощью @inline,
🔹Анализ сгенерированного «ассемблера» при помощи @code_llvm,
🔹Ускорение с помощью применения кортежей вместо массивов,
🔹Реализацию метода конечных разностей для гиперболических уравнений,
🔹Визуализацию с настраиваемым шагом при помощи Plots.jl.
В конечном счете Julia позволяет:
🔹Писать выразительный код на уровне Python,
🔹Достигать скорости C за счёт JIT-компиляции,
🔹Легко интегрировать низкоуровневые оптимизации (за это мы ее и любим!).
🔹Писать выразительный код на уровне Python,
🔹Достигать скорости C за счёт JIT-компиляции,
🔹Легко интегрировать низкоуровневые оптимизации (за это мы ее и любим!).
Кстати, недавно на Хабре появилась крайне полезная Шпаргалка по типам Julia для инженеров и не только. Очень рекомендуем.
Все проекты из статьи доступны в нашем Сообществе. Давайте вместе исследовать мир научных вычислений!
До новых встреч в цифровой вселенной!