大量数据的并行计算怎么实现?

对大量数据的计算可以考虑将数据分布在不同的计算节点上,使每个单独节点上的数据量小于其可用内存。划分数据时,应尽量使不同计算节点上的数据交换和通信量最少,最佳情况是使各台节点完全独立地进行计算,不做任何数据交换和通信。


因为现在的机器几乎都是多核多处理器的,在每个节点上还可以进行节点内的并行,以充分利用每台机器的计算性能。


做并行计算还需要选择一种合适的并行计算工具,很多编程语言都提供了多种并行实现机制。以 Python 为例,可以使用标准库中的 [threading 模块](https://docs.python.org/2/library/threading.html)进行线程级别的并行,[multiprocessing 模块](https://docs.python.org/2/library/multiprocessing.html)进行进程级别的并行,[concurrent.futures 模块](https://docs.python.org/3/library/concurrent.futures.html)实现异步并行,使用 [IPython.parallel 模块](https://ipython.org/ipython-doc/3/parallel/index.html)进行多种方式的并行,使用 [mpi4py 包](https://pypi.org/project/mpi4py/)进行 MPI 消息传递并行计算,等等。如果可以使用 C/C++,Fortran 或者使用 cython 为 Python 编写扩展模块,还可以使用 OpenMP 并行。我的个人[简书专题](https://www.jianshu.com/c/5019bb7bada6)和 [CSDN 博客专栏](https://blog.csdn.net/column/details/26248.html)中有对用 Python 做并行计算的专门介绍并提供了大量的程序实例。有需要或者感兴趣的可以了解下。

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章