Bibliotecas Macbook m1 y python [cerrado]
¿El nuevo macbook m1 es adecuado para la ciencia de datos?
¿Las bibliotecas de Python de Data Science como pandas, numpy, sklearn, etc. funcionan en el chip macbook m1 (Apple Silicon) y qué tan rápido en comparación con los macbooks basados en Intel de la generación anterior?
Respuestas
Este repositorio de GitHub tiene mucha información útil sobre el chip Apple M1 y la ciencia de datos en Python https://github.com/neurolabusc/AppleSiliconForNeuroimaging. He incluido citas representativas a continuación.
TL; DR
A menos que sea un desarrollador, desaconsejaría a los científicos que compren una computadora Apple Silicon a corto plazo. El trabajo productivo requerirá la portabilidad de las herramientas básicas. A largo plazo, esta arquitectura podría tener un impacto profundo en la ciencia. En particular, si Apple desarrolla servidores que aprovechan la notable eficiencia energética de sus CPU (compitiendo con AWS Graviton) y aprovechan el lenguaje Metal y las GPU para tareas de computación (compitiendo con los productos Tesla de NVidia y el lenguaje CUDA).
Limitaciones que enfrenta Apple Silicon
La infraestructura de la que dependen los científicos aún no está disponible para esta arquitectura. Estas son algunas de las limitaciones a corto plazo:
- Los científicos que utilizan los populares lenguajes R, Julia y Python necesitan un compilador Fortran de código abierto. Si bien Python está disponible en Apple Silicon, herramientas como Numpy y Scipy requieren la compilación de Fortran. Una solución es instalar una distribución de Python como miniconda y ejecutar su instalador pip para agregar paquetes Intel (los scripts incluidos en este repositorio requieren numpy, pandas y seaborn). Hay un retraso cuando se importa por primera vez una de estas bibliotecas mientras se traducen. Posteriormente, las bibliotecas de Python traducidas parecen funcionar bien.
- Si bien el compilador C Clang de Apple genera código nativo rápido, muchas herramientas científicas deberán esperar hasta que los compiladores gcc, golang y gFortran estén disponibles.
- Herramientas como VirtualBox, VMware Fusion, Boot Camp y Parallels aún no son compatibles con Apple Silicon. Muchos usuarios confían en estas herramientas para usar programas de Windows y Linux en sus computadoras macOS.
- Docker no es compatible con Apple Silicon. Estos contenedores son populares entre muchas herramientas de neuroimagen.
- Muchos componentes caseros no son compatibles con Apple Silicon. Los usuarios deberán instalar componentes traducidos o crear módulos compatibles desde la fuente.
- MATLAB es utilizado por muchas herramientas científicas, incluida la SPM. Si bien Matlab funciona en la traducción, aún no está disponible de forma nativa (y los archivos mex deberán volver a compilarse).
- FSL y AFNI aún no admiten esta arquitectura de forma nativa. Si bien el código puede funcionar en la traducción, la creación de algunas herramientas nativas debe esperar a que se actualicen los compiladores y las bibliotecas. Es probable que esto requiera meses.
- La generación actual M1 solo tiene cuatro núcleos de alto rendimiento. La mayoría de los canales de neuroimagen combinan tareas secuenciales que solo requieren un solo núcleo (donde sobresale el M1), así como tareas paralelas. Esas tareas paralelas podrían explotar una CPU con más núcleos (como se muestra en las pruebas pigz y niimath a continuación). Tenga en cuenta que esta mezcla de código en serie y paralelo se enfrenta a la ley de Amdahl, con rendimientos decrecientes para núcleos adicionales.
- La generación actual M1 tiene un máximo de 16 Gb de RAM. Los conjuntos de datos de neuroimagen a menudo tienen grandes demandas de memoria (especialmente conjuntos de datos de difusión, estado de reposo y funcionales acelerados multibanda).