Macbook m1 e librerie python [chiuse]
Il nuovo macbook m1 è adatto per la scienza dei dati?
Le librerie python di Data Science come panda, numpy, sklearn ecc. Funzionano sul chip macbook m1 (Apple Silicon) e quanto velocemente rispetto ai macbook basati su Intel della generazione precedente?
Risposte
Questo repository GitHub contiene molte informazioni utili sul chip Apple M1 e sulla scienza dei dati in Python https://github.com/neurolabusc/AppleSiliconForNeuroimaging. Ho incluso citazioni rappresentative di seguito.
TL; DR
A meno che tu non sia uno sviluppatore, scoraggerei vivamente gli scienziati dall'acquistare un computer Apple Silicon a breve termine. Il lavoro produttivo richiederà il porting degli strumenti principali. A lungo termine, questa architettura potrebbe avere un profondo impatto sulla scienza. In particolare se Apple sviluppa server che sfruttano la notevole efficienza energetica delle proprie CPU (in competizione con AWS Graviton) e sfruttano il linguaggio Metal e le GPU per le attività di calcolo (in competizione con i prodotti Tesla di NVidia e il linguaggio CUDA).
Limitazioni che devono affrontare Apple Silicon
L'infrastruttura da cui dipendono gli scienziati non è ancora disponibile per questa architettura. Ecco alcune delle limitazioni a breve termine:
- Gli scienziati che utilizzano i popolari linguaggi R, Julia e Python richiedono un compilatore Fortran open source. Sebbene Python sia disponibile su Apple Silicon, strumenti come Numpy e Scipy richiedono la compilazione Fortran. Una soluzione è installare una distribuzione Python come miniconda ed eseguire il suo programma di installazione pip per aggiungere pacchetti Intel (gli script inclusi in questo repository richiedono numpy, pandas e seaborn). C'è un ritardo quando si importa per la prima volta una di queste librerie mentre vengono tradotte. Successivamente, le librerie Python tradotte sembrano funzionare bene.
- Mentre il compilatore C Clang di Apple genera codice nativo veloce, molti strumenti scientifici dovranno attendere fino a quando non saranno disponibili i compilatori gcc, golang e gFortran.
- Strumenti come VirtualBox, VMware Fusion, Boot Camp e Parallels non supportano ancora Apple Silicon. Molti utenti si affidano a questi strumenti per utilizzare i programmi Windows e Linux sui propri computer macOS.
- Docker non supporta Apple Silicon. Questi contenitori sono apprezzati da molti strumenti di neuroimaging.
- Molti componenti homebrew non supportano Apple Silicon. Gli utenti dovranno installare componenti tradotti o creare moduli supportati dall'origine.
- MATLAB è utilizzato da molti strumenti scientifici, incluso SPM. Sebbene Matlab funzioni in traduzione, non è ancora disponibile in modo nativo (e i file mex dovranno essere ricompilati).
- FSL e AFNI non supportano ancora nativamente questa architettura. Sebbene il codice possa funzionare nella traduzione, la creazione di alcuni strumenti nativi deve attendere l'aggiornamento di compilatori e librerie. Questo probabilmente richiederà mesi.
- L'attuale generazione M1 ha solo quattro core ad alte prestazioni. La maggior parte delle pipeline di neuroimaging combina attività sequenziali che richiedono solo un singolo core (dove l'M1 eccelle) e attività parallele. Queste attività parallele potrebbero sfruttare una CPU con più core (come mostrato nei test pigz e niimath di seguito). Tieni presente che questa miscela di codice seriale e parallelo affronta la legge di Amdahl, con rendimenti decrescenti per i core extra.
- L'attuale generazione M1 ha un massimo di 16 Gb di RAM. I set di dati di neuroimaging hanno spesso grandi richieste di memoria (in particolare set di dati funzionali accelerati multibanda, stato di riposo e diffusione).