Macbook m1 und Python-Bibliotheken [geschlossen]
Ist das neue MacBook m1 für Data Science geeignet?
Funktionieren Data Science-Python-Bibliotheken wie Pandas, Numpy, Sklearn usw. auf dem MacBook M1-Chip (Apple Silicon) und wie schnell im Vergleich zu Intel-basierten Macbooks der vorherigen Generation?
Antworten
Dieses GitHub-Repository enthält viele nützliche Informationen zum Apple M1-Chip und zur Datenwissenschaft in Python https://github.com/neurolabusc/AppleSiliconForNeuroimaging. Ich habe unten repräsentative Zitate aufgenommen.
TL; DR
Sofern Sie kein Entwickler sind, würde ich Wissenschaftler dringend davon abhalten, kurzfristig einen Apple Silicon-Computer zu kaufen. Für produktive Arbeit müssen Kernwerkzeuge portiert werden. Langfristig könnte diese Architektur tiefgreifende Auswirkungen auf die Wissenschaft haben. Insbesondere, wenn Apple Server entwickelt, die die bemerkenswerte Energieeffizienz ihrer CPUs nutzen (im Wettbewerb mit AWS Graviton) und die Metal-Sprache und GPUs für Rechenaufgaben nutzen (im Wettbewerb mit den Tesla-Produkten von NVidia und der CUDA-Sprache).
Einschränkungen für Apple Silicon
Die Infrastruktur, auf die Wissenschaftler angewiesen sind, ist für diese Architektur noch nicht verfügbar. Hier sind einige der kurzfristigen Einschränkungen:
- Wissenschaftler, die die beliebten Sprachen R, Julia und Python verwenden, benötigen einen Open-Source-Fortran-Compiler. Während Python auf Apple Silicon verfügbar ist, erfordern Tools wie Numpy und Scipy die Fortran-Kompilierung. Eine Lösung besteht darin, eine Python-Distribution wie miniconda zu installieren und das Pip-Installationsprogramm auszuführen, um Intel-Pakete hinzuzufügen (für die in diesem Repository enthaltenen Skripte sind Numpy, Pandas und Seaborn erforderlich). Es gibt eine Verzögerung, wenn man eine dieser Bibliotheken zum ersten Mal importiert, während sie übersetzt werden. Anschließend scheinen die übersetzten Python-Bibliotheken gut zu laufen.
- Während der C Clang-Compiler von Apple schnellen nativen Code generiert, müssen viele wissenschaftliche Tools warten, bis die Compiler gcc, golang und gFortran verfügbar sind.
- Tools wie VirtualBox, VMware Fusion, Boot Camp und Parallels unterstützen Apple Silicon noch nicht. Viele Benutzer verlassen sich auf diese Tools, um Windows- und Linux-Programme auf ihren MacOS-Computern zu verwenden.
- Docker unterstützt Apple Silicon nicht. Diese Container sind bei vielen Neuroimaging-Tools beliebt.
- Viele Homebrew-Komponenten unterstützen Apple Silicon nicht. Benutzer müssen übersetzte Komponenten installieren oder unterstützte Module aus dem Quellcode erstellen.
- MATLAB wird von vielen wissenschaftlichen Tools verwendet, einschließlich SPM. Während Matlab in der Übersetzung arbeitet, ist es noch nicht nativ verfügbar (und mex-Dateien müssen neu kompiliert werden).
- FSL und AFNI unterstützen diese Architektur noch nicht nativ. Während Code möglicherweise in der Übersetzung funktioniert, muss das Erstellen einiger nativer Tools darauf warten, dass Compiler und Bibliotheken aktualisiert werden. Dies wird wahrscheinlich Monate dauern.
- Die aktuelle Generation M1 verfügt nur über vier Hochleistungskerne. Die meisten Neuroimaging-Pipelines kombinieren sequentielle Aufgaben, die nur einen einzigen Kern erfordern (wo sich der M1 auszeichnet), sowie parallele Aufgaben. Diese parallelen Aufgaben könnten eine CPU mit mehr Kernen ausnutzen (wie in den Pigz- und Niimath-Tests unten gezeigt). Denken Sie daran, dass diese Mischung aus seriellem und parallelem Code dem Amdahlschen Gesetz entspricht und die Rendite für zusätzliche Kerne abnimmt.
- Die aktuelle Generation M1 verfügt über maximal 16 GB RAM. Neuroimaging-Datensätze haben häufig einen hohen Speicherbedarf (insbesondere Multiband-beschleunigte Funktions-, Ruhezustands- und Diffusionsdatensätze).