技术背景
在之前的博客中我们介绍过concurrent等python多进程任务的方案,而之所以我们又在考虑MPI等方案来实现python并行计算的原因,其实是将python的计算任务与并行计算的任务调度分层实现。在concurrent和multiprocessing等方案中,我们的python计算任务和调度任务是一体化的,而且还有一个比较大的限制是没办法跨节点操作的,这对于任务与环境的定制化程度要求是比较高的。而MPI的方案在设计初期就考虑到了多节点之间通信的问题,而这种分层式的任务调度解决方案其实在架构上看也更加的合理。做计算的人只要考虑单个进程下的任务如何执行就可以了,至于任务如何并行如何调度,那就是上层的MPI该做的事情了。
mpi4py的安装
这里推荐使用conda直接安装,如果采用pip安装的话,可能会有些环境依赖的问题出现:
$ conda install mpi4py Collecting package metadata (current_repodata.json): done Solving environment: done ## Package Plan ## environment location: /home/dechin/anaconda3 added / updated specs: - mpi4py The following packages will be downloaded: package | build ---------------------------|----------------- mpi-1.0 | mpich 13 KB defaults mpi4py-3.0.3 | py38h028fd6f_0 572 KB default