超级计算机:在超级计算机中运行的程序的简单示例

比山·波德尔(Bhishan Poudel)

我正在学习如何使用超级计算机来充分利用资源。假设我有一个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

但是我想利用不同的节点
必需的输出: outputs / 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 /多线程提交

番荔枝

看看这个链接,它可能会解决您的问题

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 [email protected]
###############################################################################

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用超级计算机运行程序

来自分类Dev

旧计算机的超级计算机

来自分类Dev

超级计算机使用哪种RAM?

来自分类Dev

多GPU超级计算机

来自分类Dev

Powershell在远程计算机中运行Bat文件

来自分类Dev

库在计算机中的何处?

来自分类Dev

什么是超级计算机的Rmax / RPeak(Ratio)

来自分类Dev

多核超级计算机上的SSH Shell

来自分类Dev

通过局域网的超级计算机

来自分类Dev

带有Red Hat的虚拟超级计算机

来自分类Dev

什么是超级计算机的Rmax / RPeak(Ratio)

来自分类Dev

由超级计算机提供支持的 Excel VBA 脚本?

来自分类Dev

在新计算机中读取旧计算机的主文件夹

来自分类Dev

使Java程序在计算机的后台运行

来自分类Dev

递归搜索计算机中的文件

来自分类Dev

本地网络计算机中的reCAPTCHA

来自分类Dev

加法在计算机中如何工作?

来自分类Dev

列出到远程计算机中的txt文件

来自分类Dev

如何删除计算机中的“文件夹”

来自分类Dev

我如何找出计算机中的主板?

来自分类Dev

.dmp文件在计算机中的哪里?

来自分类Dev

如何从计算机中删除XFCE?

来自分类Dev

如何从计算机中删除主题火炬?

来自分类Dev

在计算机中递归搜索文件

来自分类Dev

个人计算机中的“省电”模式?

来自分类Dev

我的TrueTypeFonts在计算机中的哪里?

来自分类Dev

Centos计算机中Syslog的文件位置

来自分类Dev

如何从崩溃的计算机中复制PuTTY会话?

来自分类Dev

在Windows 7计算机中未生成.gitconfig