Macbookm1和python库
新的 macbook m1 适合数据科学吗?
数据科学 python 库,如 pandas、numpy、sklearn 等是否在 macbook m1(Apple Silicon)芯片上工作,与上一代基于英特尔的 macbook 相比有多快?
回答
这个 GitHub 存储库有很多关于 Apple M1 芯片和 Python 数据科学的有用信息https://github.com/neurolabusc/AppleSiliconForNeuroimaging。我在下面列出了代表性的报价。
TL; 博士
除非您是开发人员,否则我强烈建议科学家在短期内不要购买 Apple Silicon 计算机。生产性工作需要移植核心工具。从长远来看,这种架构可能会对科学产生深远的影响。特别是如果 Apple 开发的服务器利用其 CPU 的卓越能效(与 AWS Graviton 竞争)并利用 Metal 语言和 GPU 执行计算任务(与 NVidia 的 Tesla 产品和 CUDA 语言竞争)。
Apple Silicon 面临的限制
科学家所依赖的基础设施尚不能用于此架构。以下是一些短期限制:
- 使用流行的 R、Julia 和 Python 语言的科学家需要一个开源的 Fortran 编译器。虽然 Python 在 Apple Silicon 上可用,但像 Numpy 和 Scipy 这样的工具需要 Fortran 编译。一种解决方案是安装像 miniconda 这样的 Python 发行版并运行其 pip 安装程序以添加 Intel 软件包(此存储库中包含的脚本需要 numpy、pandas 和 seaborn)。在翻译时第一次导入这些库中的一个时会出现延迟。随后,翻译的 Python 库似乎运行良好。
- 虽然 Apple 的 Clang 编译器生成快速的本机代码,但许多科学工具需要等到 gcc、golang 和 gFortran 编译器可用。
- VirtualBox、VMware Fusion、Boot Camp 和 Parallels 等工具尚不支持 Apple Silicon。许多用户依赖这些工具在他们的 macOS 计算机上使用 Windows 和 Linux 程序。
- Docker 不支持 Apple Silicon。这些容器在许多神经成像工具中很受欢迎。
- 许多自制组件不支持 Apple Silicon。用户必须安装翻译的组件或从源代码构建支持的模块。
- MATLAB 被许多科学工具使用,包括 SPM。虽然 Matlab 可用于翻译,但它本身尚不可用(并且需要重新编译 mex 文件)。
- FSL 和 AFNI 本身还不支持这种架构。虽然代码可以在翻译中工作,但创建一些本机工具必须等待编译器和库更新。这可能需要几个月的时间。
- 当前一代 M1 只有四个高性能内核。大多数神经影像管道结合了仅需要单个内核(M1 擅长)的顺序任务以及并行任务。这些并行任务可以利用具有更多内核的 CPU(如下面的 pigz 和 niimath 测试所示)。请记住,这种串行和并行代码的混合面临 Amdahls 定律,额外内核的收益递减。
- 当前一代 M1 具有最大 16 Gb 的 RAM。神经影像数据集通常具有大量内存需求(尤其是多波段加速功能、静息状态和扩散数据集)。