Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Entwicklung Zuletzt aktualisiert: September 23, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Die Welt der Technologie ist immer in Bewegung. Das neueste Kind im Block ist die Programmiersprache Mojo. Sie soll die Ausführungsgeschwindigkeit für Python-basierte Projekte verbessern und Entwicklern eine ähnliche Geschwindigkeit wie C ermöglichen.

Python ist eine der führenden Programmiersprachen. Es handelt sich um eine vielseitige, leicht zu erlernende Programmiersprache, die neuen Lernenden einen Einstieg in die Programmierung/Informatik bietet.

Außerdem ist sie eine ausgezeichnete Programmiersprache für kompetente Entwickler, die damit komplexe Anwendungen erstellen können. Einer der größten Nachteile von Python ist jedoch seine Ausführungsgeschwindigkeit. Und genau hier kommt Mojo ins Spiel.

Dieser Artikel befasst sich mit Mojo und wie es sich in das Python-Ökosystem einfügt. Lassen Sie uns beginnen.

Was ist Mojo?

YouTube Video

Mojo ist eine moderne Programmiersprache auf hohem Niveau. Sie bietet ein intuitives Design, das Entwicklern hilft, Anwendungen schnell zu erstellen. Außerdem soll sie die Kluft zwischen Produktion und Forschung überbrücken, indem sie es den Benutzern ermöglicht, Metaprogrammierfunktionen und Systemprogrammierung mit der Syntax und dem Ökosystem von Python zu nutzen.

Es lehnt sich stark an Rust an und bietet dem Python-Ökosystem schnelle Ausführungsgeschwindigkeiten. Technisch gesehen ist Mojo eine Obermenge von Python, die Ihnen den Zugang ermöglicht.

Das Team hinter Mojo stammt von Modular, einem KI-Infrastrukturunternehmen. Und das bedeutet auch, dass es eine Programmiersprache für KI-Entwickler ist. Neben der Programmiersprache Mojo wurde auch die Interference Engine vorgestellt, mit der Entwickler ihre Arbeitsabläufe verbessern, KI-Produkte skalieren und die Inferenzlatenz verringern können (mehr dazu später).

Laut dem CEO von Modular, Chris Lattner, ist Mojo 35.000 Mal schneller als Python. Er steht auch hinter der Entwicklung der schnellen Programmiersprache. Der Geschwindigkeitsgewinn wird dadurch erreicht, dass Mojo die LLVM-Compiler-Toolchain und die MILR-Compiler-Infrastruktur (Multi-level Intermediate Representation Overview) verwendet.

Zu den Zielen der Mojo-Programmiersprachen gehören:

  • Vollständige Kompatibilität mit dem Python-Ökosystem.
  • Entwicklern die Möglichkeit geben, Code-Teilmengen auf Beschleunigern einzusetzen.
  • Kontrolle auf niedriger Ebene, um eine vorhersehbare Leistung zu gewährleisten.
  • Keine Fragmentierung des Ökosystems.

Um Mojo auszuprobieren, müssen Sie es über die Cloud-basierte, gehostete Umgebung, den Mojo Spielplatz, verwenden. Sie werden aufgefordert, sich anzumelden, und schon können Sie eine Arbeitsumgebung nutzen!

online-mojo-spielplatz

Warum brauchen wir Mojo?

Die Kernidee hinter Mojo ist die Vereinheitlichung der ML/AI-Infrastruktur durch die Bereitstellung einer Programmiersprache, die über den gesamten Stack hinweg funktioniert. Außerdem sorgt es für Benutzerfreundlichkeit, indem es die Notwendigkeit beseitigt, MLIR-Code zu schreiben.

Nach Angaben von Modular wird Mojo ein skalierbares und innovatives Programmiermodell bieten. Auf diese Weise wird es den Anwendern im KI-Bereich leicht fallen, mit Beschleunigern und heterogenen Systemen zu arbeiten.

Technisch gesehen ist Mojo eine Programmiersprache, die Metaprogrammierung zur Kompilierzeit unterstützt. Sie unterstützt auch andere Funktionen, wie z.B. Caching während des Kompilierungsflusses, adaptive Kompilierungstechniken usw. Diese Funktionen sind in anderen Programmiersprachen nicht vorhanden.

Wenn Sie mehr über die Philosophie von Mojo lesen möchten, lesen Sie Modular Docs - Warum Mojo🔥

Funktionen der Mojo Programmiersprache

In diesem Abschnitt werden wir uns die wichtigsten Funktionen der Mojo-Programmiersprache ansehen.

#1. Vollständige Kompatibilität mit Python

Mojo zielt darauf ab, mit dem Ökosystem von Python zu arbeiten und nicht gegen es. Das zeigt sich daran, dass Mojo dieselben Funktionen, Bibliotheken und Merkmale verwendet, die auch Python bietet. Sie können auch jede beliebige Python-Bibliothek in Mojo verwenden.

Um zu importieren, müssen Sie den folgenden Code verwenden:

from PythonInterface import Python

Danach können Sie mit Python.import_module() jede beliebige Python-Bibliothek importieren.

Um zum Beispiel numpy zu importieren, müssen Sie die folgende Codezeile verwenden.

let np = Python.import_module("numpy")

In Python müssen Sie "import numpy as np" ausführen

Da es nun importiert ist, können Sie es verwenden, um Arrays zu erstellen, Berechnungen durchzuführen, usw.

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

print(array)

In ähnlicher Weise können Sie matplotlib.pyplot importieren, um ein Diagramm in Mojo zu erstellen.

So sieht es aus, wenn ich den Code in Mojo Playground ausführe.

running-code-Mojo-playground

Wenn Sie den Code ausprobieren möchten, fügen Sie ihn einfach per Copy-Paste ein.

from PythonInterface import Python

let np = Python.import_module("numpy")

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

print(array)

#2. MILR

MILR steht für Multi-Level Intermediate Representation. Mojo unterstützt MILR. Im Gegenzug können Entwickler eine ganze Reihe neuer, fortschrittlicher Funktionen nutzen. Zu diesen Funktionen gehören KI-Hardwareeinheiten, Threads und Vektoren.

MILR verbessert die Leistung aufgrund der Gleichzeitigkeit und macht Mojo schneller als Python. Außerdem können Entwickler damit die Vorteile mehrerer Kerne nutzen.

#3. Eigentümer- und Entleiherüberprüfung

Die Speicherverwaltung von Python ist sicher. Es verwendet einen Garbage Collector, so dass Programmierer sicherstellen müssen, dass der Code nicht in Race Conditions gerät.

Mojo implementiert, ähnlich wie Rust, ein striktes Modell zur Überprüfung von Eigentümern und Entleihern. Derzeit ist es nur teilweise implementiert. Die Idee hinter der Verwendung dieses Modells ist es, die Gleichzeitigkeit zu verbessern und eine hervorragende Speicherverwaltung zu bieten.

Das Ownership-Modell sorgt außerdem für einen thread-sicheren Ansatz, der ideal ist, um eine hervorragende Unterstützung der Gleichzeitigkeit zu bieten. Auf diese Weise treten bei Programmen keine Race Conditions auf. Außerdem sorgt der Borrowers-Checker dafür, dass die Variablen während der Laufzeit immer überprüft werden.

#4. Null Kosten für Abstraktion

Mojo bietet Abstraktionen zum Nulltarif, die es Entwicklern ermöglichen, die vollständige Kontrolle über die Speicherung zu übernehmen. Hier können Programmierer Inline-Zuordnungswerte zu Strukturen vornehmen.

#5. Auto-Tuning

Mojo bietet auch die Möglichkeit der automatischen Abstimmung. Dadurch wird sichergestellt, dass je nach Zielhardware automatisch die besten Werte für die Parameter zugewiesen werden.

Durch das Auto-Tuning entfällt die Notwendigkeit, Ihren Code entsprechend der Zielhardware manuell zu optimieren.

Geschwindigkeit: Wie schnell ist die Mojo-Sprache?

Python ist eine High-Level-Programmiersprache, die auf Benutzerfreundlichkeit und Wartungsfreundlichkeit ausgerichtet ist. Leider macht sie das im Vergleich zu anderen Lösungen oder Programmiersprachen langsam.

In dem Test von Modular wurde Mojo als 35000x eingestuft. Sie verwendeten den Mandelbrot-Algorithmus und führten ihn auf einer AWS-Instanz aus, die von einem Intel Xeon-Prozessor angetrieben wurde. Sie testeten PYPY, SCALAR C und MOJO zusammen mit Python. Die Ergebnisse waren superschnell, und Sie können die Ergebnisse unten sehen.

speed-mojo-programmiersprache
Quelle: modular.de

Wenn Sie mehr über die Geschwindigkeit von Mojo erfahren möchten, lesen Sie diese Beitrag zur Julialang Community.

Modulare Inferenzmaschine - KI-Modelle kostengünstig ausführen

Modular entwickelt auch eine Modular Interference Engine, mit der Sie KI-Modelle kostengünstig in der Produktion einsetzen können. Mojo unterstützt die Modular Interfence Engine standardmäßig. Sie ermöglicht es Teams, ihre Arbeitsabläufe zu vereinfachen. Außerdem können Entwickler damit die Latenzzeit bei der Inferenz reduzieren, was die Skalierung von KI-Produkten erleichtert.

Außerdem müssen die Entwickler ihr Modell nicht ändern, um die Engine zu nutzen. Sobald die Engine geladen ist, kann sie PyTorch- und TensorFlow-Modelle mit hoher Leistung und breiter Hardwareunterstützung ausstatten.

Wird es Python ersetzen?

Mojo ist neu. Es sieht vielversprechend aus. Es wird auch einige Zeit dauern, bis es seine Zielgruppen, wie Datenwissenschaftler oder Programmiersprachen, erreicht. Und ja, es löst bestimmte Probleme für KI-Enthusiasten und Lernende. Es gibt jedoch viele ähnliche Lösungen, die die Geschwindigkeit der Python-Sprache verbessern. So gibt es zum Beispiel Jax, Codon und Julia - eine Sprache für Datenwissenschaftler.

Es können auch zwei Dinge passieren. Erstens wächst die Anzahl der Funktionen exponentiell und die Community nimmt sie an. Ein anderes Ergebnis ist, dass sie zu einer Ad-hoc-Programmiersprache wird, die Python-Bibliotheken und die Modular Interference Engine nutzt.

Wird Mojo auch Python ersetzen? Das kann nur die Zeit zeigen.

Als Nächstes sehen Sie sich nützliche Python-Einzeiler an, die häufigen Aufgaben zu vereinfachen.

  • Nitish Singh
    Autor
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Entwicklung
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder