Мир технологий всегда в движении. Самый новый ребенок в блоке — язык программирования Mojo. Требуется мантия для повышения скорости выполнения проектов на основе Python, что дает разработчикам скорость, аналогичную C.

Python — один из лучших языков программирования. Это универсальный, простой в освоении язык программирования, который предлагает новым учащимся доступ к программированию/информатике.

Более того, это отличный язык программирования для компетентных разработчиков, которые могут использовать его для создания сложных приложений. Однако одним из наиболее существенных недостатков Python является его скорость выполнения. И тут на помощь приходит Моджо.

В этой статье рассказывается о Mojo и его связи с экосистемой Python. Давайте начнем.

Что такое Моджо?

Mojo — современный язык программирования высокого уровня. Он предлагает интуитивно понятный дизайн, помогающий разработчикам быстро создавать приложения. Кроме того, он направлен на преодоление разрыва между производством и исследованиями, позволяя пользователям использовать функции метапрограммирования и системного программирования с синтаксисом и экосистемой Python.

Он в значительной степени заимствован из Rust и обеспечивает высокую скорость выполнения для экосистемы Python. Технически Mojo — это расширенный набор Python, который дает вам доступ.

Команда Mojo принадлежит компании Modular, занимающейся инфраструктурой искусственного интеллекта. А это также означает, что это язык программирования для разработчиков ИИ. Наряду с языком программирования Mojo они также представили Interference Engine, который позволяет разработчикам улучшать рабочий процесс, масштабировать продукты ИИ и сокращать задержку логического вывода (подробнее об этом позже).

По словам генерального директора Modular Криса Латтнера, Mojo в 35 000 раз быстрее, чем Python. Он также стоит за быстрой разработкой языка программирования. Прирост скорости достигается благодаря тому, как Mojo использует набор инструментов компилятора LLVM и инфраструктуру компилятора MILR (обзор многоуровневого промежуточного представления).

Цели языков программирования Mojo включают:

  • Работайте с полной совместимостью с экосистемой Python.
  • Разрешить разработчикам развертывать подмножества кода в ускорителях.
  • Низкоуровневый контроль для обеспечения предсказуемой производительности.
  • Обеспечьте отсутствие фрагментации экосистемы.

Чтобы попробовать Mojo, вам нужно использовать его через облачную размещенную среду Mojo Playground. Он попросит вас войти в систему, и вы сможете получить рабочую среду!

Зачем нам нужен моджо?

Основная идея Mojo состоит в том, чтобы унифицировать инфраструктуру ML/AI, предоставив язык программирования, который работает во всем стеке. Кроме того, он обеспечивает простоту использования, устраняя необходимость написания кода MLIR.

Согласно Modular, Mojo предложит масштабируемую и инновационную модель программирования. Таким образом, полевым пользователям ИИ будет легко работать с ускорителями и гетерогенными системами.

Технически это делает Mojo языком программирования, который поддерживает метапрограммирование во время компиляции. Он также поддерживает другие функции, такие как кэширование во время процесса компиляции, методы адаптивной компиляции и т. д. Эти функции отсутствуют в других языках программирования.

Если вы хотите узнать больше о философии Mojo, ознакомьтесь с Modular Docs – Why Mojo🔥

Особенности языка программирования Mojo

В этом разделе мы рассмотрим ключевые особенности языка программирования Mojo.

№1. Полная совместимость с Python

Mojo стремится работать с экосистемой Python, а не против нее. Это видно из того факта, что Mojo использует те же функции, библиотеки и возможности, что и Python. Таким образом, вы можете использовать любую библиотеку Python в Mojo.

Для импорта вам потребуется использовать следующий код:

from PythonInterface import Python

После этого вы можете использовать Python.import_module() для импорта любой библиотеки Python.

Например, чтобы импортировать numpy, вам нужно использовать следующую строку кода.

let np = Python.import_module(“numpy”)

В Python вам нужно будет «импортировать numpy как np».

Поскольку он импортирован, теперь вы можете использовать его для создания массивов, выполнения вычислений и т. д.

array = np.array([1, 2, 3])

print(array)

Точно так же вы можете импортировать matplotlib.pyplot для создания графика в Mojo.

Вот как это выглядит, когда я запускаю код в Mojo Playground.

Если вы хотите попробовать код, скопируйте и вставьте его снизу.

from PythonInterface import Python

let np = Python.import_module("numpy")

array = np.array([1, 2, 3, 4, 5])

print(array)

№ 2. МИЛР

MILR означает многоуровневое промежуточное представление. Mojo поддерживает MILR. Это, в свою очередь, позволяет разработчикам использовать полный набор новых расширенных функций. Эти функции включают аппаратные единицы ИИ, потоки и векторы.

MILR повышает производительность за счет параллелизма, делая Mojo быстрее, чем Python. Кроме того, это позволяет разработчикам использовать преимущества нескольких ядер.

№3. Проверка прав собственности и заемщика

Управление памятью в Python безопасно. Он использует сборщик мусора, поэтому программисты должны гарантировать, что код не будет работать в условиях гонки.

Mojo, как и Rust, реализует строгую модель проверки прав собственности и заемщика. В настоящее время он реализован частично. Идея использования модели заключается в улучшении параллелизма и обеспечении превосходного управления памятью.

Модель владения также обеспечивает потокобезопасный подход, который идеально подходит для обеспечения превосходной поддержки параллелизма. Таким образом, программы не сталкиваются с условиями гонки. Кроме того, средство проверки заемщика гарантирует, что переменные всегда проверяются во время выполнения.

№ 4. Нулевая стоимость абстракции

Mojo предлагает абстракции с нулевой стоимостью, позволяющие разработчикам получить полный контроль над хранилищем. Здесь программисты могут выполнять встроенное распределение значений по структурам.

№ 5. Автотюнинг

Mojo также предлагает автонастройку. Это обеспечивает автоматическое назначение оптимальных значений для параметров в зависимости от целевого оборудования.

Автоматическая настройка устраняет необходимость вручную оптимизировать код в соответствии с целевым оборудованием.

Скорость: насколько быстр язык Mojo?

Python — это язык программирования высокого уровня, целью которого является простота использования и ремонтопригодность. К сожалению, это делает его медленным по сравнению с другими решениями или языками программирования.

В тесте Modular они обнаружили, что Mojo составляет 35000x. Они использовали алгоритм Мандельброта и запустили его на экземпляре AWS с процессором Intel Xeon. Они протестировали PYPY, SCALAR C++ и MOJO вместе с Python. Результаты были очень быстрыми, и вы можете увидеть результаты ниже.

Источник: модульный.com

Чтобы узнать больше о скорости Mojo, прочтите этот пост в сообществе Julialang.

Модульный механизм логического вывода — дешево запускайте модели ИИ

Modular также разрабатывает Modular Interference Engine, который удешевляет запуск моделей ИИ в производстве. Mojo по умолчанию поддерживает Modular Interfence Engine. Это позволяет командам упростить рабочий процесс. Это также позволяет разработчикам сократить задержку логического вывода, упрощая масштабирование продуктов ИИ.

Кроме того, разработчикам не нужно менять свою модель, чтобы использовать Engine. После загрузки он может перегружать модели PyTorch и TensorFlow, способные работать с высокой производительностью при широкой аппаратной поддержке.

Заменит ли он Python?

Моджо новый. Выглядит многообещающе. Таким образом, потребуется время, чтобы охватить целевую аудиторию, такую ​​как специалисты по обработке и анализу данных или языки программирования. И да, он решает определенные проблемы для энтузиастов и изучающих ИИ. Однако существует множество подобных решений, которые улучшают скорость языка Python. Например, вы найдете Jax, Codon и Julia — язык, ориентированный на науку о данных.

Итак, могут произойти две вещи. Во-первых, он экспоненциально растет в отношении функций, и сообщество принимает его. Другим результатом является то, что он становится специальным языком программирования, использующим библиотеки Python и Modular Interference Engine.

Итак, заменит ли Mojo Python? Только время может сказать.

Затем ознакомьтесь с полезными однострочниками Python, чтобы упростить общие задачи.