gpt4 book ai didi

python - super 计算机: Dead simple example of a program to run in supercomputer

转载 作者:行者123 更新时间:2023-12-01 03:38:23 24 4
gpt4 key购买 nike

我正在学习如何使用 super 计算机来充分利用资源。假设我有一个 python 脚本,它将创建一个具有给定随机数的文本文件。

myfile.py

# Imports
import random,os

outdir = 'outputs'
if not os.path.exists(outdir):
os.makedirs(outdir)

with open (outdir+'/temp.txt','w') as f :
a = random.randint(0,9)
f.write(str(a))

这将在本地计算机中仅创建一个文本文件。
有什么方法可以使用该程序的多个实例、使用多个节点并获得多个输出吗?

我在 C 程序中找到了 mpiexec 的模板,如下所示,但我找不到任何 python 程序的模板。

#PBS -N my_job
#PBS -l walltime=0:10:00
#PBS -l nodes=4:ppn=12
#PBS -j oe

cd $PBS_O_WORKDIR

mpicc -O2 mpi-hello.c -o mpi-hello

cp $PBS_O_WORKDIR/* $PFSDIR
cd $PFSDIR

mpiexec ./mpi-hello

cp $PFSDIR/* $PBS_O_WORKDIR

注意:在使用多核的单个节点上,我可以编写如下的 bash 脚本:

for i in `seq 1 10`;
do
python myfile.py && cp temp.txt outputs/out$i.txt &
done

但我想利用不同的节点
所需输出:输出/out1.txt,out2.txt,out3.txt等

一些相关链接如下:
https://www.osc.edu/sites/osc.edu/files/documentation/Batch%20Training%20-%2020150312%20-%20OSC.pdf
https://www.osc.edu/~kmanalo/multithreadedsubmission

最佳答案

查看此链接,它可能会解决您的问题

http://materials.jeremybejarano.com/MPIwithPython/introMPI.html

所以你的代码可能是这样的:

from mpi4py import MPI
import random,os

outdir = 'outputs'
comm = MPI.COMM_WORLD
rank = comm.Get_rank()

if not os.path.exists(outdir):
os.makedirs(outdir)

with open (outdir+'/temp%s.txt' % rank,'w') as f :
a = random.randint(0,9)
f.write(str(a))

和 pbs 文件:

#!/bin/bash
################################################################################
#PBS -N myfile.py
#PBS -l nodes=7:ppn=4
#PBS -l walltime=30:30:00:00
#PBS -m bea
##PBS -M mail@mail.mail
###############################################################################

cores=$(awk 'END {print NR}' $PBS_NODEFILE)
mpirun -np $cores python myfile.py

关于python - super 计算机: Dead simple example of a program to run in supercomputer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40049092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com