Bibliothèques Macbook m1 et python [fermé]
Le nouveau macbook m1 est-il adapté à la science des données?
Les bibliothèques python de Data Science telles que pandas, numpy, sklearn, etc. fonctionnent-elles sur la puce macbook m1 (Apple Silicon) et à quelle vitesse par rapport aux macbooks Intel de génération précédente?
Réponses
Ce référentiel GitHub contient de nombreuses informations utiles sur la puce Apple M1 et la science des données en Python https://github.com/neurolabusc/AppleSiliconForNeuroimaging. J'ai inclus des citations représentatives ci-dessous.
TL; DR
À moins que vous ne soyez un développeur, je déconseillerais fortement aux scientifiques d'acheter un ordinateur Apple Silicon à court terme. Le travail productif nécessitera le portage des outils de base. À plus long terme, cette architecture pourrait avoir un impact profond sur la science. En particulier si Apple développe des serveurs qui exploitent la remarquable efficacité énergétique de leurs processeurs (en concurrence avec AWS Graviton) et exploitent le langage Metal et les GPU pour les tâches de calcul (en concurrence avec les produits Tesla de NVidia et le langage CUDA).
Limitations face à Apple Silicon
L'infrastructure dont dépendent les scientifiques n'est pas encore disponible pour cette architecture. Voici quelques-unes des limites à court terme:
- Les scientifiques utilisant les langages populaires R, Julia et Python ont besoin d'un compilateur Fortran open source. Alors que Python est disponible sur Apple Silicon, des outils tels que Numpy et Scipy nécessitent une compilation Fortran. Une solution consiste à installer une distribution Python comme miniconda et à exécuter son programme d'installation pip pour ajouter des packages Intel (les scripts inclus dans ce référentiel nécessitent numpy, pandas et seaborn). Il y a un délai quand on importe pour la première fois une de ces bibliothèques pendant qu'elles sont traduites. Par la suite, les bibliothèques Python traduites semblent bien fonctionner.
- Alors que le compilateur C Clang d'Apple génère du code natif rapide, de nombreux outils scientifiques devront attendre que les compilateurs gcc, golang et gFortran soient disponibles.
- Des outils tels que VirtualBox, VMware Fusion, Boot Camp et Parallels ne prennent pas encore en charge Apple Silicon. De nombreux utilisateurs s'appuient sur ces outils pour utiliser les programmes Windows et Linux sur leurs ordinateurs macOS.
- Docker ne prend pas en charge Apple Silicon. Ces conteneurs sont populaires avec de nombreux outils de neuroimagerie.
- De nombreux composants homebrew ne prennent pas en charge Apple Silicon. Les utilisateurs devront installer des composants traduits ou créer des modules pris en charge à partir de la source.
- MATLAB est utilisé par de nombreux outils scientifiques, dont SPM. Bien que Matlab fonctionne en traduction, il n'est pas encore disponible nativement (et les fichiers mex devront être recompilés).
- FSL et AFNI ne supportent pas encore nativement cette architecture. Bien que le code puisse fonctionner en traduction, la création de certains outils natifs doit attendre la mise à jour des compilateurs et des bibliothèques. Cela prendra probablement des mois.
- La génération actuelle M1 ne dispose que de quatre cœurs hautes performances. La plupart des pipelines de neuroimagerie combinent des tâches séquentielles qui ne nécessitent qu'un seul cœur (là où le M1 excelle) ainsi que des tâches parallèles. Ces tâches parallèles pourraient exploiter un processeur avec plus de cœurs (comme indiqué dans les tests pigz et niimath ci-dessous). Gardez à l'esprit que ce mélange de code série et parallèle fait face à la loi d'Amdahls, avec des rendements décroissants pour les cœurs supplémentaires.
- La génération actuelle M1 dispose d'un maximum de 16 Go de RAM. Les ensembles de données de neuroimagerie ont souvent de grandes demandes de mémoire (en particulier les ensembles de données fonctionnelles, d'état de repos et de diffusion accélérées multi-bandes).