---
Bonjour et bienvenue dans le calcul parallèle avec Dask. Je suis Dhavide Aruliah. Ce cours porte sur la bibliothèque Python Dask qui aide les data scientists à échelonner leurs analyses sans douleur.
Tout d'abord, demandons-nous ce que signifie "Big Data". En gros, c'est plus de données qu'une seule machine peut accueillir. Pour comprendre cela précisément, nous devons discuter du stockage informatique.
Tout d'abord, clarifions les unités de stockage. Dans les unités métriques conventionnelles, des préfixes comme kilo-, méga-, giga- et téra- désignent des facteurs de 1000. Par exemple, kiloWatt, mégaWatt, gigaWatt et téraWatt signifient 10^3, 10^6, 10^9 et 10^{12} Watts respectivement. Cependant, les ordinateurs utilisent la notation binaire ou base 2, et non la base 10. L'unité de base du stockage de données est le chiffre binaire ou bit. Huit bits constituent un octet de données. Donc, pour les données, il est conventionnel d'utiliser kilo-, méga-, giga- et téra- pour échelonner les unités par $2^{10}$ ou 1 024 (car c'est presque 1000). Ainsi, un kilooctet est de 2^10 octets, un mégaoctet est de 2^20 octets, un gigaoctet est de 2^30 octets, et ainsi de suite.
Les disques durs sont utilisés pour le stockage permanent...
...Actuellement, les disques durs peuvent accueillir des téraoctets de données mais nécessitent des millisecondes pour accéder aux données.
Les ordinateurs utilisent la mémoire vive (RAM) pour le stockage temporaire. Les données dans la RAM disparaissent lors de l'arrêt. Les données peuvent être récupérées de la RAM en nanosecondes à microsecondes, mais les plus grandes configurations de RAM sont au mieux quelques gigaoctets aujourd'hui.
Ce tableau (modifié d'un tableau de Brendan Gregg) raconte l'histoire. Ce sont les temps de transfert de données depuis la RAM, les disques durs et Internet, (disons, de San Francisco à New York). Ce qui compte, ce sont les échelles de temps relatives - nanosecondes à microsecondes à millisecondes. Si nous faisons semblant que le transfert depuis la RAM prend une seconde. Alors, le transfert depuis un disque SSD prend de 7 à 21 minutes, le transfert depuis un disque dur rotatif prend deux heures et demie à un jour complet, et le transfert depuis Internet prend presque 4 jours.
C'est ce que signifie vraiment le Big Data. Lorsque les données débordent de la RAM vers le disque dur ou le cloud, le temps de traitement relatif passe effectivement de secondes à minutes ou jours.
Cela dit, examinons l'utilisation de la mémoire sur mon ordinateur portable.
Nous avons besoin d'outils des modules psutil et os, donc nous les importons. Nous définissons ensuite une fonction personnalisée memory_footprint() pour retourner combien de mémoire (en Mo) le processus Python utilise. Nous n'avons pas besoin de comprendre son fonctionnement interne, mais remarquez que le résultat retourné est redimensionné de bytes à mégaoctets.
Nous importons NumPy et nous appelons memory footprint avant de faire du travail. Nous créons ensuite un tableau NumPy x qui nécessite 50 Mo de stockage, puis nous appelons memory footprint à nouveau pour voir l'utilisation de la mémoire après. En effet, le processus a tiré environ 50 Mo supplémentaires du système d'exploitation pour créer x.
Nous calculons ensuite `x` au carré et recalculons l'utilisation de la mémoire avant et après. Nous constatons qu'un supplément de 50 Mo de RAM est acquis pour ce calcul
(bien que le résultat calculé `x**2` ne soit pas réellement lié à un identifiant).
Nous pouvons utiliser l'attribut `nbytes` d'un tableau numpy pour connaître ses besoins réels en mémoire. Le résultat est donné en bytes. En divisant par 1024^2, nous obtenons la taille en mégaoctets (un nombre plus lisible).
Nous pouvons également créer un DataFrame Pandas `df` en utilisant `x`. Le DataFrame a un attribut `memory_usage()` qui retourne une série entière résumant son empreinte mémoire en bytes. Comme auparavant, nous pouvons diviser par 1024^2 pour obtenir l'empreinte mémoire en mégaoctets.
Donc, avant de plonger dans Dask, essayez quelques exercices pour vous assurer que vous savez combien de mémoire vous utilisez.
#TutorielPython #StockageInformatique #Python #DataCamp #BigData #programmationparallèle #dask