两种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
相关推荐
XiaoMaqqqq14 分钟前
目前知名的IP驱动产业新场景新工具有哪些
网络·python·网络协议·tcp/ip
玩大数据的龙威21 分钟前
农经权二轮延包—固定比例尺不定图幅的公示图批量生成
python·arcgis·二轮延包公示图
程序猿编码26 分钟前
C++/CUDA 手写 LLM 推理引擎:拆解 vLLM 核心 PagedAttention 与连续批处理
开发语言·c++·深度学习·神经网络·推理·vllm
hold?fish:palm33 分钟前
44 二叉搜索树中第K小的元素
开发语言·c++·算法
凉茶钱1 小时前
【吃透C++】万字解析类和对象
开发语言·c++
白杨尚青1 小时前
C++入门篇(十):string(上)——认识string:构造与三大遍历(一条龙讲透operator[]、迭代器、auto、范围for)
java·开发语言·c++·笔记·stl
可乐鸡翅yeah_1 小时前
hls.js 切换多个视频源,新手开发常见踩坑
开发语言·前端·javascript·ios·ffmpeg·音视频·safari
Tanshu_API君1 小时前
API 聚合平台选型指南:从参数拆解到生产落地的十个评估维度
开发语言·api
Chen—LSN1 小时前
C语言——⽂件操作(1)
c语言·开发语言·c++·经验分享·笔记·算法·链表
狗凯之家源码网1 小时前
PHP 开源 IM 即时通讯系统效果实测与功能展示
开发语言·开源·php