---
Hallo und willkommen zum Parallel Computing mit Dask. Ich bin Dhavide Aruliah. Dieser Kurs handelt von der Python-Bibliothek Dask, die Datenwissenschaftlern hilft, ihre Analysen mühelos zu skalieren.
Zuerst lassen Sie uns fragen, was "Big Data" bedeutet. Grob gesagt, es sind mehr Daten, als eine einzelne Maschine verarbeiten kann. Um das genau zu verstehen, müssen wir über Computerspeicher sprechen.
Zuerst lassen Sie uns die Speichereinheiten klären. In herkömmlichen metrischen Einheiten bedeuten Präfixe wie kilo-, mega-, giga- und tera- Faktoren von 1000. Zum Beispiel bedeuten kiloWatt, megaWatt, gigaWatt und teraWatt 10^3, 10^6, 10^9 und 10^{12} Watt. Computer verwenden jedoch die binäre oder Basis-2-Notation, nicht die Basis-10-Notation. Die Basiseinheit des Datenspeichers ist die binäre Ziffer oder Bit. Acht Bits ergeben ein Byte Daten. Daher ist es bei Daten üblich, kilo-, mega-, giga- und tera- zu verwenden, um die Einheiten um $2^{10}$ oder 1.024 (weil das fast 1000 ist) zu skalieren. Ein Kilobyte sind also 2^10 Bytes, ein Megabyte sind 2^20 Bytes, ein Gigabyte sind 2^30 Bytes und so weiter.
Festplatten werden für die permanente Speicherung verwendet...
...Aktuelle Festplatten können Terabytes an Daten speichern, benötigen jedoch Millisekunden, um auf Daten zuzugreifen.
Computer verwenden den Arbeitsspeicher (RAM) für die temporäre Speicherung. Daten im RAM verschwinden beim Herunterfahren. Daten können in Nanosekunden bis Mikrosekunden aus dem RAM abgerufen werden, aber die größten RAM-Konfigurationen sind heute bestenfalls einige Gigabyte.
Diese Tabelle (modifiziert aus einer Tabelle von Brendan Gregg) erzählt die Geschichte. Dies sind die Datenübertragungszeiten von RAM, Festplatten und dem Internet (sagen wir, von San Francisco nach New York). Was zählt, sind die relativen Zeitmaßstäbe - Nanosekunden zu Mikrosekunden zu Millisekunden. Wenn wir annehmen, dass die Übertragung vom RAM eine Sekunde dauert. Dann dauert die Übertragung von einer SSD 7 bis 21 Minuten, die Übertragung von einer rotierenden Festplatte dauert zweieinhalb Stunden bis zu einem vollen Tag, und die Übertragung aus dem Internet dauert fast 4 Tage.
Das ist es, was Big Data wirklich bedeutet. Wenn Daten vom RAM auf die Festplatte oder die Cloud überlaufen, springt die relative Verarbeitungszeit effektiv von Sekunden auf Minuten oder Tage.
Mit diesem Wissen lassen Sie uns die Speichernutzung auf meinem Laptop untersuchen.
Wir benötigen Werkzeuge aus den Modulen psutil und os, also importieren wir diese. Dann definieren wir eine benutzerdefinierte Funktion memory_footprint(), um zurückzugeben, wie viel Speicher (in MB) der Python-Prozess verwendet. Wir müssen die inneren Abläufe nicht verstehen, aber beachten Sie, dass das zurückgegebene Ergebnis von Bytes auf Megabytes umgerechnet wird.
Wir importieren NumPy und rufen den memory footprint auf, bevor wir irgendwelche Arbeiten durchführen. Dann erstellen wir ein NumPy-Array x, das 50 MB Speicher benötigt, und rufen den memory footprint erneut auf, um die Speichernutzung danach zu sehen. Sicher genug, der Prozess hat ungefähr weitere 50 MB vom Betriebssystem abgerufen, um x zu erstellen.
Dann berechnen wir `x` zum Quadrat und berechnen erneut den Speicherbedarf davor und danach. Wir stellen fest, dass zusätzlich 50 MB RAM für diese Berechnung benötigt werden (auch wenn das berechnete Ergebnis `x**2` tatsächlich nicht an einen Bezeichner gebunden ist).
Wir können das Attribut `nbytes` eines NumPy-Arrays verwenden, um seine tatsächlichen Speicheranforderungen herauszufinden. Das Ergebnis wird in Bytes angegeben. Durch Teilen durch 1024^2 erhalten wir die Größe in Megabytes (eine lesbarere Zahl).
Wir können auch ein Pandas DataFrame `df` unter Verwendung von `x` erstellen. Das DataFrame hat ein Attribut `memory_usage()`, das eine Integer-Serie zurückgibt, die seinen Speicherbedarf in Bytes zusammenfasst. Wie zuvor können wir durch 1024^2 teilen, um den Speicherbedarf in Megabytes zu erhalten.
Bevor wir in Dask eintauchen, versuchen Sie einige Übungen, um sicherzustellen, dass Sie wissen, wie viel Speicher Sie verwenden.
#PythonTutorial #Computerspeicher #Python #DataCamp #BigData #Parallelprogrammierung #Dask