Bibliotecas Macbook m1 e python [fechado]

Dec 02 2020

O novo macbook m1 é adequado para ciência de dados?

As bibliotecas python da Data Science, como pandas, numpy, sklearn etc, funcionam no chip macbook m1 (Apple Silicon) e com que rapidez em comparação com a geração anterior de macbooks baseados em intel?

Respostas

23 jakub Dec 02 2020 at 00:43

Este repositório GitHub tem muitas informações úteis sobre o chip Apple M1 e ciência de dados em Python https://github.com/neurolabusc/AppleSiliconForNeuroimaging. Incluí citações representativas abaixo.

TL; DR

A menos que você seja um desenvolvedor, eu desencorajaria fortemente os cientistas a comprar um computador Apple Silicon a curto prazo. O trabalho produtivo exigirá a portabilidade de ferramentas essenciais. A longo prazo, essa arquitetura pode ter um impacto profundo na ciência. Em particular, se a Apple desenvolver servidores que exploram a notável eficiência de energia de suas CPUs (competindo com a AWS Graviton) e alavancando a linguagem Metal e GPUs para tarefas de computação (competindo com os produtos Tesla da NVidia e a linguagem CUDA).

Limitações enfrentadas pela Apple Silicon

A infraestrutura da qual os cientistas dependem ainda não está disponível para esta arquitetura. Aqui estão algumas das limitações de curto prazo:

  • Cientistas que usam as populares linguagens R, Julia e Python requerem um compilador Fortran de código aberto. Embora o Python esteja disponível no Apple Silicon, ferramentas como Numpy e Scipy requerem compilação em Fortran. Uma solução é instalar uma distribuição Python como miniconda e executar seu instalador pip para adicionar pacotes Intel (os scripts incluídos neste repositório requerem numpy, pandas e seaborn). Há um atraso quando alguém importa pela primeira vez uma dessas bibliotecas enquanto elas são traduzidas. Posteriormente, as bibliotecas Python traduzidas parecem funcionar bem.
  • Embora o compilador C Clang da Apple gere código nativo rápido, muitas ferramentas científicas precisarão esperar até que os compiladores gcc, golang e gFortran estejam disponíveis.
  • Ferramentas como VirtualBox, VMware Fusion, Boot Camp e Parallels ainda não suportam Apple Silicon. Muitos usuários contam com essas ferramentas para usar programas Windows e Linux em seus computadores macOS.
  • O Docker não oferece suporte ao Apple Silicon. Esses recipientes são populares com muitas ferramentas de neuroimagem.
  • Muitos componentes homebrew não oferecem suporte ao Apple Silicon. Os usuários terão que instalar componentes traduzidos ou construir módulos suportados a partir da fonte.
  • O MATLAB é usado por muitas ferramentas científicas, incluindo SPM. Embora o Matlab funcione na tradução, ele ainda não está disponível nativamente (e os arquivos mex precisarão ser recompilados).
  • FSL e AFNI ainda não oferecem suporte nativo a essa arquitetura. Embora o código possa funcionar na tradução, a criação de algumas ferramentas nativas deve esperar que os compiladores e as bibliotecas sejam atualizados. Isso provavelmente levará meses.
  • A atual geração M1 tem apenas quatro núcleos de alto desempenho. A maioria dos pipelines de neuroimagem combina tarefas sequenciais que requerem apenas um único núcleo (onde o M1 é excelente), bem como tarefas paralelas. Essas tarefas paralelas podem explorar uma CPU com mais núcleos (como mostrado nos testes pigz e niimath abaixo). Lembre-se de que essa mistura de código serial e paralelo enfrenta a lei de Amdahls, com retornos decrescentes para núcleos extras.
  • A geração atual M1 tem no máximo 16 Gb de RAM. Os conjuntos de dados de neuroimagem geralmente têm grandes demandas de memória (especialmente conjuntos de dados funcionais acelerados multibanda, estado de repouso e difusão).