标签: slurm

seq使用逗号作为小数分隔符

我注意到seq我的一台计算机上出现了一个奇怪的行为(Ubuntu LTS 14.04):它不使用点作为小数分隔符,而是使用逗号:

seq 0. 0.1 0.2
0,0
0,1
0,2
Run Code Online (Sandbox Code Playgroud)

我的另一台PC上相同版本的seq(8.21)给出了正常点(也是相同的Ubuntu版本).最奇怪的是,当我从第一台机器进入ssh时,我在远程机器上观察到同样的不良行为.即使是从冲突机器提交到远程机器上的作业调度程序(slurm)的bash脚本也存在这个问题.我很迷茫.为什么(以及如何!)发生这种情况?

ssh bash ubuntu seq slurm

9
推荐指数
1
解决办法
5359
查看次数

运行具有多个节点的slurm脚本,使用1个任务启动作业步骤

我正在尝试使用批处理脚本启动大量作业步骤.不同的步骤可以是完全不同的程序,并且每个步骤只需要一个CPU.首先,我尝试使用--multi-prog参数来执行此操作srun.不幸的是,当以这种方式使用分配给我的作业的所有CPU时,性能会大幅降低.运行时间几乎增加到序列化值.通过订阅我可以改善这一点.我在网上找不到关于这个问题的任何内容,所以我认为它是我正在使用的集群的配置问题.

所以我试着走另一条路.我实现了以下脚本(通过启动sbatch my_script.slurm):

#!/bin/bash
#SBATCH -o $HOME/slurm/slurm_out/%j.%N.out
#SBATCH --error=$HOME/slurm/slurm_out/%j.%N.err_out
#SBATCH --get-user-env
#SBATCH -J test
#SBATCH -D $HOME/slurm
#SBATCH --export=NONE
#SBATCH --ntasks=48

NR_PROCS=$(($SLURM_NTASKS))
for PROC in $(seq 0 $(($NR_PROCS-1)));
do
    #My call looks like this:
    #srun --exclusive -n1 bash $PROJECT/call_shells/call_"$PROC".sh &
    srun --exclusive -n1 hostname &
    pids[${PROC}]=$!    #Save PID of this background process
done
for pid in ${pids[*]};
do
    wait ${pid} #Wait on all PIDs, this returns 0 if ANY process fails
done
Run Code Online (Sandbox Code Playgroud)

我知道,--exclusive …

cluster-computing slurm

9
推荐指数
1
解决办法
4994
查看次数

如何从 SLURM 获取详细的作业运行信息(例如,像 LSF 为“标准输出”生成的那样)?

bsub与 LSF 一起使用时,该-o选项提供了许多详细信息,例如作业何时开始和结束以及作业占用了多少内存和 CPU 时间。使用 SLURM,我得到的只是在没有 LSF 的情况下运行脚本时得到的相同标准输出。

例如,给定这个 Perl 6 脚本:

warn  "standard error stream";
say  "standard output stream";
Run Code Online (Sandbox Code Playgroud)

提交如下:

sbatch -o test.o%j -e test.e%j -J test_warn --wrap 'perl6 test.p6'
Run Code Online (Sandbox Code Playgroud)

结果在文件中test.o34380

Testing standard output
Run Code Online (Sandbox Code Playgroud)

和文件test.e34380

Testing standard Error  in block <unit> at test.p6:2
Run Code Online (Sandbox Code Playgroud)


使用 LSF,我会在标准输出文件中获得各种详细信息,例如:

Sender: LSF System <lsfadmin@my_node>
Subject: Job 347511: <test> Done

Job <test> was submitted from host <my_cluster> by user <username> in cluster <my_cluster_act>.
Job was executed on host(s) …
Run Code Online (Sandbox Code Playgroud)

lsf slurm

9
推荐指数
2
解决办法
1万
查看次数

Sbatch:传递作业名称作为输入参数

我有以下脚本用slurm提交作业:

#!/bin/sh
#!/bin/bash
#SBATCH -J $3 #job_name 
#SBATCH -n 1 #Number of processors
#SBATCH -p CA 

nwchem $1 > $2
Run Code Online (Sandbox Code Playgroud)

第一个参数($ 1)是我的输入,第二个($ 2)我的输出,我想第三个($ 3)确实是我的工作名称.如果我喜欢这样,那么工作名称是'$ 3'.我怎样才能将作业名称作为脚本的参数?

谢谢

slurm

9
推荐指数
1
解决办法
3318
查看次数

由slurm处理的bash脚本中的注释

slurm在群集上使用来运行作业并提交如下所示的脚本sbatch:

#!/usr/bin/env bash

#SBATCH -o slurm.sh.out
#SBATCH -p defq
#SBATCH --mail-type=ALL
#SBATCH --mail-user=my.email@something.com

echo "hello"
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式注释掉#SBATCH一行,例如#SBATCH --mail-user=my.email@something.com在这个脚本中吗?由于slurm指令是bash注释本身,我不知道如何实现这一点.

bash comments hpc slurm

9
推荐指数
1
解决办法
2390
查看次数

Slurm:为什么在sbatch中使用srun?

在sbatch脚本中,您可以直接启动程序或脚本(例如,可执行文件myapp),但是在许多教程中,人们会使用它们srun myapp

尽管阅读了有关该主题的一些文档,但我不了解它们的区别以及何时使用这些语法

我希望这个问题足够精确(关于SO的第一个问题),在此先感谢您的回答。

hpc slurm

9
推荐指数
1
解决办法
1201
查看次数

如何在多个 GPU 节点上获取分配给 SLURM 作业的 GPU ID?

当我将带有选项 --gres=gpu:1 的 SLURM 作业提交到具有两个 GPU 的节点时,如何获取分配给该作业的 GPU 的 ID?是否有用于此目的的环境变量?我使用的 GPU 都是 nvidia GPU。谢谢。

gpu nvidia slurm sbatch

8
推荐指数
2
解决办法
2403
查看次数

在 Slurm 中,是否有快速命令来确定给定时刻的作业总数(待处理和活动)?

在 slurm 中,调用该命令squeue -u <username>将列出给定用户的所有挂起或活动的作业。我想知道是否有一种快速的方法来统计它们,以便我知道有多少未完成的工作,包括待处理和正在运行的工作。谢谢!

linux bash slurm

8
推荐指数
3
解决办法
2745
查看次数

如何获取用于 SLURM 作业的脚本的原始位置?

我正在使用脚本开始 SLURM 作业,脚本必须根据它的位置工作,该位置是在脚本本身内部使用SCRIPT_LOCATION=$(realpath $0). 但是 SLURM 将脚本复制到slurmd文件夹并从那里开始工作,它搞砸了进一步的操作。

是否有任何选项可以在移动/复制之前获取用于 slurm 作业的脚本的位置?

脚本位于网络共享文件夹中/storage/software_folder/software_name/scripts/this_script.sh,它必须:

  1. 获取它自己的位置
  2. 返回software_name文件夹
  3. software_name文件夹复制到本地文件夹/node_folder节点上
  4. 从复制的文件夹运行另一个脚本 /node_folder/software_name/scripts/launch.sh

我的脚本是

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --partition=my_partition_name

# getting location of software_name 
SHARED_PATH=$(dirname $(dirname $(realpath $0)))
# separating the software_name from path
SOFTWARE_NAME=$(basename $SHARED_PATH)
# target location to copy project
LOCAL_SOFTWARE_FOLDER='/node_folder'
# corrected path for target
LOCAL_PATH=$LOCAL_SOFTWARE_FOLDER/$SOFTWARE_NAME

# Copying software folder from network storage to local
cp -r $SHARED_PATH $LOCAL_SOFTWARE_FOLDER
# running the …
Run Code Online (Sandbox Code Playgroud)

variables bash path slurm

8
推荐指数
1
解决办法
2502
查看次数

Slurmd 无法启动并出现以下错误: fatal: 无法确定此 slurmd 的 NodeName

我正在尝试在一堆 aws 实例上设置 slurm,但是每当我尝试启动头节点时,都会出现以下错误:

fatal:无法确定此 slurmd 的 NodeName

我已经设置了实例 /etc/hosts,以便它们可以将彼此寻址为节点 1-6,其中节点 6 是头节点。这是节点 6 的主机文件,所有其他节点都有类似的主机文件。

/etc/hosts 文件:

127.0.0.1 localhost node6

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

<Node1 IP> node1
<Node2 IP> node2
<Node3 IP> node3
<Node4 IP> node4
<Node5 IP> node5
Run Code Online (Sandbox Code Playgroud)

/etc/slurm-llnl/slurm.conf:

###############################################################################
#                 Sample configuration file for SLURM 2
###############################################################################
#
# This file holds the system-wide SLURM configuration. It is read …
Run Code Online (Sandbox Code Playgroud)

slurm

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

slurm ×10

bash ×4

hpc ×2

cluster-computing ×1

comments ×1

gpu ×1

linux ×1

lsf ×1

nvidia ×1

path ×1

sbatch ×1

seq ×1

ssh ×1

ubuntu ×1

variables ×1