Definition Was ist Modin?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Modin ist eine Python Library, mit der sich Pandas-Workflows beschleunigen lassen. Die Library ist mit der Pandas-API kompatibel und stellt auf mehreren CPUs parallel prozessierbare Data Frames zur Verfügung. Um Modin zu nutzen, genügt eine einzige Zeile Programmcode, die den Pandas-Import durch den Modin-Import ersetzt. Modin verwendet für die Parallelisierung der Arbeit Dask oder Ray.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Modin ist der Name einer Library für Python, mit der sich Pandas-Workflows beschleunigen lassen. Die Library verteilt die Prozessierung der Daten auf die verfügbaren Prozessorkerne. Sie ist mit der Pandas-API kompatibel und stellt parallelisiert prozessierbare Data Frames zur Verfügung. Die Arbeitsgeschwindigkeit von Modin skaliert nahezu linear mit der Anzahl der nutzbaren CPUs. Es werden Data Frames unterschiedlichster Größen unterstützt. Um Modin zu verwenden, genügt es, eine einzige Zeile Programmcode eines Pandas-Workflows zu verändern. Der Pandas-Import „import pandas as pd“ wird durch den Modin-Import „import modin.pandas as pd“ ersetzt. Vorhandener Pandas-Code lässt sich nach dem Import einfach weiter nutzen.

Der Anwender benötigt keine Kenntnisse über die Anzahl zur Verfügung stehender Prozessorkerne. Die Verteilung der Daten auf die Prozessoren übernimmt Modin. Für die Arbeit mit mehreren Prozessorkernen verwendet Modin Dask oder Ray. Installieren lässt sich Modin über das offizielle Software-Repository Python Package Index (PyPI) und das Paketverwaltungsprogramm pip. Modin steht unter Apache Lizenz 2.0 und ist über GitHub verfügbar. Die aktuellste Version ist Modin 0.8.2 (Stand November 2020).

Modin Data Frames

Modin stellt parallelisierbare, schlanke Data Frames zur Verfügung. Im Gegensatz zu Pandas ist nicht mehr nur eine CPU für die Datenverarbeitung einsetzbar. Die Verteilung der Daten eines Data Frames auf die vorhandenen Computing-Instanzen übernimmt Modin. Die Aufteilung findet sowohl im Spalten- als auch im Zeilenbereich des Data Frames statt. Für den Anwender arbeitet Modin transparent und lässt sich analog zur Pandas-API nutzen. Die Geschwindigkeit der Datenverarbeitung skaliert fast linear mit der Anzahl der Prozessorkerne. Da es sich bei Modin um eine noch sehr junge Library handelt, sind aktuell nicht alle Pandas-Methoden und -Funktionen beschleunigt. Nicht beschleunigte Methoden und Funktionen führt Modin im normalen „Pandas-Mode“ aus.

Modin eignet sich für die Arbeit sowohl mit kleinen als auch mit großen Datensätzen. Die Library ist für die parallele Verarbeitung von Datensätzen mit einer Größe von unter einem Megabyte bis über einem Terabyte konzipiert. Für die Arbeit mit besonders großen Datensätzen, wie sie im Big-Data-Umfeld auftreten, lässt sich der sogenannte „Out of Core Mode“ aktivieren. Daten, die nicht mehr in den Arbeitsspeicher passen, lagert Modin mit aktiviertem Out of Core Mode temporär auf die Festplatte aus. Die Datensätze können größer als der verfügbare RAM-Speicher sein.

Pandas und die Gründe für die Entwicklung von Modin

Pandas ist eine Open-Source-basierte Python Data Analysis Library. Mithilfe von Pandas lassen sich strukturierte, multidimensionale Daten verwalten, modellieren und analysieren. Eine der Stärken der Bibliothek ist das Analysieren von Zeitreihen und tabellarischen Daten. Von Pandas bereitgestellte Funktionen erlauben beispielsweise das Einlesen, Transformieren, Filtern, Aggregieren, Bereinigen oder Manipulieren der Daten. Unterstützt werden Datenformate wie Excel-Tabellen und CSV- oder JSON-Dateien. Im Zusammenspiel mit Matplotlib lassen sich die Datenanalysen visualisieren.

Pandas ist eine in der Datenwissenschaft sehr beliebte und häufig eingesetzte Bibliothek. In der Entwicklung von Pandas wurde großer Wert auf Einfachheit und Flexibilität gelegt. An seine Grenzen kommt die Library, wenn große Datenmengen analysiert und verarbeitet werden müssen. Hinsichtlich Skalierbarkeit und Performance zeigt Pandas im Big-Data-Umfeld Schwächen. Einzelne Datenverarbeitungsprozesse können immer nur auf einem Prozessorkern ausgeführt werden. Aus diesem Grund wurde die Bibliothek Modin entwickelt.

Sie ist mit der Pandas-API kompatibel und stellt einen vollwertigen Ersatz für Pandas dar. Vorhandener Pandas-Code lässt sich weiter verwenden, wird aber durch die Nutzung des Modin-Data-Frame-Formats deutlich effizienter ausgeführt. Pandas-Workflows lassen sich mithilfe von Dask und Ray automatisch über mehrere CPUs verteilen. Modin unterstützt das parallele Prozessieren der in kleinere Stücke aufgeteilten Data Frames und skaliert dadurch deutlich besser.

Anwendungsmöglichkeiten der Bibliothek Modin

Grundsätzlich lässt sich die Bibliothek Modin für alle Anwendungen einsetzen, für die auch Pandas geeignet ist. Sowohl im kommerziellen als auch im akademischen Umfeld wird Modin zur Verwaltung, Manipulation und Auswertung strukturierter Daten in Tabellenform oder von Zeitreihen genutzt. Ihre Stärken spielt die Library in der Analyse großer Datensätze aus, wie sie im Big-Data-Umfeld üblich sind. Typische Anwendungen sind beispielsweise Business Intelligence (BI), wissenschaftliche Auswertungen großer Datenmengen und Statistiken im Marketing- oder Finanzbereich.

Vorteile von Modin

  • geeignet für die Auswertung, Verwaltung und Manipulation großer Datenmengen
  • hohe Performance durch parallele Bearbeitung der Daten auf mehreren CPU-Kernen
  • mit der Pandas-API kompatibel
  • nutzbar für Pandas-Workflows mit der Änderung nur einer Zeile Programmcode
  • als Open Source Software frei verfügbar
  • gute Skalierbarkeit (skaliert nahezu linear mit der Anzahl der Prozessorkerne)
  • voll in die Python-Welt integriert und kompatibel mit anderen datenwissenschaftlichen Bibliotheken und Anwendungen wie Matplotlib
  • plattformunabhängig einsetzbar
  • Unterstützung zahlreicher verschiedener Datenformate

(ID:47012078)