两种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
相关推荐
Mr_Chenph9 分钟前
Miniconda3在Windows11上和本地Python共生
开发语言·python·miniconda3
阿狸远翔10 分钟前
Protobuf 和 protoc-gen-go 详解
开发语言·后端·golang
永远前进不waiting10 分钟前
C复习——1
c语言·开发语言
伯明翰java22 分钟前
Java数据类型与变量
java·开发语言
一路往蓝-Anbo22 分钟前
【第13期】中断机制详解 :从向量表到ISR
c语言·开发语言·stm32·单片机·嵌入式硬件
渣渣盟29 分钟前
Linux邮件服务器快速搭建指南
linux·服务器·开发语言
BD_Marathon1 小时前
Promise基础语法
开发语言·前端·javascript
Aotman_2 小时前
JavaScript MutationObserver用法( 监听DOM变化 )
开发语言·前端·javascript·vue.js·前端框架·es6
Bruce_Liuxiaowei2 小时前
Nmap+Fofa 一体化信息搜集工具打造
运维·开发语言·网络·网络安全
智航GIS2 小时前
5.1 if语句基础
开发语言·python