两种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
相关推荐
n***3335几秒前
C语言轮子大赛:挑战底层,突破极限
c语言·开发语言
Hacker_seagull5 分钟前
Java 8安装详细教程
java·开发语言
小白学大数据5 分钟前
随机间隔在 Python 爬虫中的应用实践
开发语言·c++·爬虫·python
软件开发技术深度爱好者8 分钟前
JavaScript的p5.js库坐标系图解
开发语言·前端·javascript
松涛和鸣9 分钟前
54、DS18B20单线数字温度采集
linux·服务器·c语言·开发语言·数据库
Gofarlic_OMS15 分钟前
MATLAB许可证闲置自动检测与智能提醒
java·大数据·运维·开发语言·人工智能·算法·matlab
yaoxin52112316 分钟前
293. Java Stream API - 从 HTTP 源创建 Stream
java·开发语言·http
哟哟耶耶16 分钟前
java-MySql下载与配置环境变量
java·开发语言·mysql
e***985720 分钟前
C语言轮子大赛:从零打造经典轮子
c语言·开发语言
tjjucheng22 分钟前
专业小程序定制开发生产厂家
python