python多线程并行计算通过向线程池ThreadPoolExecutor提交任务的实现方法

python多线程并行计算通过向线程池ThreadPoolExecutor提交任务的实现方法,第1张

Python的线程池可以有效地控制系统中并发线程的数量。

当程序中需要创建许多生存期较短的线程执行运算任务时,首先考虑使用线程池。线程池任务启动时会创建出最大线程数参数 max_workers 指定数量的空闲线程,程序只要将执行函数提交给线程池,线程池就会启动一个空闲的线程来执行它。当该函数执行结束后,该线程并不会死亡,而是再次返回到线程池中变成空闲状态,等待执行下一个函数。配合使用 with 关键字实现任务队列完成后自动关闭线程池释放资源。

我们下面以C 语言为例。

具体语法规则可参看《高性能计算并行编程技术-MPI 并行程序设计》一书。

mpicc -o outfilename cpi.c

其中outfilename 为编译后的输出文件,cpi.c 为源代码.

可将cpi.c 下载后上传的自己目录下编译.

例如:mpicc -o cpi cpi.c

如没有安装OpenPBS 则:

mpirun -np 4 cpi

否则:(一般安装了)

之后需写一作业提交脚本.例如:submit 内容如下:

#PBS -l nodes=nodes number

#PBS -N jobname#PBS -j oecd /home/xmin/Project

/usr/local/bin/mpiexec cpi

其中 #PBS -l nodes=nodes number 为指定几个节点计算.如: nodes=4

#PBS -N jobname 为用户命名的提交作业名称.如: #PBS -N xmin

#PBS -j oe 为结果和错误输出同文件.如无此项则分别在两个文件中.

cd /home/xmin/Project 编译后的输出文件所在路径(从根目录开始).

/usr/local/bin/mpiexec cpi 为mpiexec 所在路径.

下面是完整例子:

#PBS -l nodes=4

#PBS -N xmin#PBS -j oecd /home/xmin/Project

/usr/local/bin/mpiexec cpi

提交脚本如下:

qsub submit得到如下:3565.isc.math.nankai.edu.cn

此为你的作业编号.

这样你就可得到类似xmin.o2666 的文件,打开即可看到结果.

你还可以查询作业提交情况.命令如下:qstat


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12197040.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存