两种Python进行cpu并行运算的方式

Python一共有两种并行方式

1. 使用multiprocessing

第一种方式用于单个节点内部的并行,也就是说同时发起的进程数不能超过你单个机器CPU的线程数。

以下是第一种方式的并行程序:

python 复制代码
import multiprocessing
import time
import os
import numpy as np
ncore=20

def run(core):
	Your code
	reture 0

if __name__ == '__main__':
    print(time.strftime('%Y-%m-%d %H:%M:%S'))
    param = np.arange(20)
    p = multiprocessing.Pool(ncore)
    p.map(run, param)
    p.close()
    p.join()
    print(time.strftime('%Y-%m-%d %H:%M:%S'))

提交脚本直接:

bash 复制代码
python your_job_name.py

2. 使用mpi4py

第二种方式用于跨节点的并行,可以发起成千上百个CPU的并行。

以下是第二中方式的并行程序:

python 复制代码
from mpi4py import MPI
import time
import os
import numpy as np
ncore=20

def run(core):
	Your code
	reture 0

if __name__ == '__main__':
    print(time.strftime('%Y-%m-%d %H:%M:%S'))
    comm = MPI.COMM_WORLD
    rank = comm.Get_rank()
    run(rank)
    print(time.strftime('%Y-%m-%d %H:%M:%S'))

提交脚本需要用到mpi

bash 复制代码
mpiexec -n cpu_number python your_job_name.py
相关推荐
对方正在长头发2251 天前
写了个 Windows 端口映射管理工具,再也不用敲命令了
python
白云如幻1 天前
【JDBC】集合、反射和泛型复习-3
java·开发语言·jdbc
笨笨马甲1 天前
Qt 实现三维坐标系的方法
开发语言·qt
tang777891 天前
哪些行业用动态代理ip?哪些行业用静态代理IP?怎样区分动态ip和静态ip?(互联网人必码·实用长文)
大数据·网络·爬虫·python·网络协议·tcp/ip·智能路由器
bugcome_com1 天前
C# 高级集合使用示例
开发语言·c#
sycmancia1 天前
C++——动态内存分配、关于虚函数、关于继承中的强制类型转换
开发语言·c++
龙泉寺天下行走1 天前
LangChain Skills框架核心解析
python·langchain·aigc
Mao_Hui1 天前
Unity3d实时读取Modbus RTU数据
开发语言·嵌入式硬件·unity·c#
echome8881 天前
Python 装饰器详解:从入门到精通的实用指南
开发语言·python
重生之后端学习1 天前
62. 不同路径
开发语言·数据结构·算法·leetcode·职场和发展·深度优先