Biblioteki Macbook M1 i Python [zamknięte]
Czy nowy Macbook M1 nadaje się do nauki o danych?
Czy biblioteki Data Science w Pythonie, takie jak pandy, numpy, sklearn itp., Działają na chipie Macbook M1 (Apple Silicon) i jak szybko w porównaniu do macbooków poprzedniej generacji opartych na Intel?
Odpowiedzi
To repozytorium GitHub zawiera wiele przydatnych informacji o chipie Apple M1 i nauce o danych w Pythonie https://github.com/neurolabusc/AppleSiliconForNeuroimaging. Poniżej zamieściłem reprezentatywne cytaty.
TL; DR
Jeśli nie jesteś programistą, zdecydowanie odradzam naukowcom kupowanie komputera Apple Silicon w perspektywie krótkoterminowej. Wydajna praca będzie wymagała przeniesienia podstawowych narzędzi. W dłuższej perspektywie architektura ta może mieć głęboki wpływ na naukę. W szczególności, jeśli Apple opracuje serwery, które wykorzystują niezwykłą wydajność energetyczną swoich procesorów (konkurujących z AWS Graviton) i wykorzystują język Metal i procesory graficzne do zadań obliczeniowych (konkurując z produktami Tesla firmy NVidia i językiem CUDA).
Ograniczenia stojące przed Apple Silicon
Infrastruktura, na której polegają naukowcy, nie jest jeszcze dostępna dla tej architektury. Oto niektóre z krótkoterminowych ograniczeń:
- Naukowcy używający popularnych języków R, Julia i Python potrzebują kompilatora Fortran o otwartym kodzie źródłowym. Podczas gdy Python jest dostępny w Apple Silicon, narzędzia takie jak Numpy i Scipy wymagają kompilacji Fortran. Jednym z rozwiązań jest zainstalowanie dystrybucji Pythona, takiej jak miniconda, i uruchomienie jej instalatora pip w celu dodania pakietów Intela (skrypty zawarte w tym repozytorium wymagają numpy, pandas i seaborn). Po zaimportowaniu jednej z tych bibliotek po raz pierwszy podczas ich tłumaczenia występuje opóźnienie. Następnie przetłumaczone biblioteki Pythona wydają się działać dobrze.
- Podczas gdy kompilator C Clang firmy Apple generuje szybki kod natywny, wiele narzędzi naukowych będzie musiało poczekać, aż będą dostępne kompilatory gcc, golang i gFortran.
- Narzędzia takie jak VirtualBox, VMware Fusion, Boot Camp i Parallels nie obsługują jeszcze Apple Silicon. Wielu użytkowników polega na tych narzędziach podczas korzystania z programów Windows i Linux na komputerach z systemem macOS.
- Docker nie obsługuje Apple Silicon. Te pojemniki są popularne w wielu narzędziach do neuroobrazowania.
- Wiele komponentów homebrew nie obsługuje Apple Silicon. Użytkownicy będą musieli zainstalować przetłumaczone komponenty lub zbudować obsługiwane moduły ze źródła.
- MATLAB jest używany przez wiele narzędzi naukowych, w tym SPM. Chociaż Matlab działa w tłumaczeniu, nie jest jeszcze dostępny natywnie (a pliki mex będą musiały zostać ponownie skompilowane).
- FSL i AFNI nie obsługują jeszcze natywnie tej architektury. Chociaż kod może działać w tłumaczeniu, tworzenie niektórych narzędzi natywnych musi czekać na aktualizację kompilatorów i bibliotek. Prawdopodobnie zajmie to kilka miesięcy.
- Obecna generacja M1 ma tylko cztery rdzenie o wysokiej wydajności. Większość potoków neuroobrazowania łączy zadania sekwencyjne, które wymagają tylko jednego rdzenia (gdzie M1 wyróżnia się), jak również zadania równoległe. Te równoległe zadania mogą wykorzystywać procesor z większą liczbą rdzeni (jak pokazano w testach pigz i niimath poniżej). Należy pamiętać, że ta mieszanka kodu szeregowego i równoległego stoi w obliczu prawa Amdahlsa, przy malejących korzyściach z dodatkowych rdzeni.
- Obecna generacja M1 ma maksymalnie 16 GB pamięci RAM. Zestawy danych neuroobrazowania często wymagają dużej pamięci (zwłaszcza wielopasmowe, przyspieszone zestawy danych funkcjonalnych, spoczynkowych i dyfuzyjnych).