标签: gridengine

挂钟时间、用户时间和cpu时间有什么区别

我们正在使用 GridEngine 运行计算作业。每个作业返回 3 个不同的时间:

  • 挂钟时间
  • 用户时间
  • CPU时间

这三者之间有什么区别?这三个中哪一个最适合比较两个应用程序/脚本的性能

gridengine

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

多台服务器就像一台拥有所有硬件的服务器?

到现在为止,我有 10 台 HPC 服务器,面向功率计算。我的用户需要使用 qmake 启动多个进程。用户习惯于使用 ubuntu 9.10,并且存储库中的软件对他们来说是可切换的。

我已将 ubuntu 9.10 部署到所有 10 个服务器(pxe 岩石)。

现在我们使用并行 ssh 和集群 ssh,它们允许向所有服务器启动相同的进程。使用这个工具这个工具服务器保持独立,但具有相同的软件和相同的启动命令。

现在我们想进入下一步,将所有服务器视为一个服务器,其他 9 个服务器的所有资源都被视为它的资源。

在处理时间和设计启动命令的时间上,差异将是巨大的。

关于使用哪些软件的任何建议都会非常有用?

谢谢

linux cluster gridengine

14
推荐指数
1
解决办法
7210
查看次数

Sun Grid Engine huhohshdhjha

当我输入时qstat -h,我得到以下选项

   [-s {p|r|s|z|hu|ho|hs|hd|hj|ha|h|a}] show pending, running, suspended, zombie jobs,
                                      jobs with a user/operator/system/array-dependency hold, 
                                      jobs with a start time in future or any combination only.
                                      h is an abbreviation for huhohshdhjha
                                      a is an abbreviation for prsh
Run Code Online (Sandbox Code Playgroud)

世界是什么huhohshdhjha????

command-line-interface gridengine

13
推荐指数
1
解决办法
505
查看次数

如何在 SGE 上设置每个用户的最大运行作业数?

我们正在使用 SGE(Sun Grid Manager)。我们对所有用户的并发作业总数有一些限制。

我想知道是否可以对特定用户的并发运行作业数量设置一个临时的、自愿的限制。

例如,用户dave将要提交 500 个作业,但他不希望同时运行 100 个作业,例如,因为他知道这些作业执行了大量 I/O,从而卡住了文件系统(不幸的是,这是真实的故事)。

那可能吗?

gridengine

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

以用户身份杀死“已删除”的 SGE 作业

有没有办法让我的用户可以终止自己卡在dr状态的作业?

qstat -f <jobid>
Run Code Online (Sandbox Code Playgroud)

作为用户,返回

job <jobid> is already in deletion
Run Code Online (Sandbox Code Playgroud)

但是当以 root 运行时,它确实被删除了

gridengine

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

在 SGE 上跟踪作业的内存使用情况

我正在寻找有关如何精确计算我的工作在我的集群上使用了多少 RAM 的一些指导。我的工作不是多线程的,而是在单个 CPU 上运行。

当我运行我的工作并运行“top”时,我可以看到它使用了这么多内存......

VIRT: 45.6g
RES: 38g
SHR: 9600
Run Code Online (Sandbox Code Playgroud)

这(纠正我错误的地方)对我来说意味着我正在使用 38 Gigs 的真实 RAM,以及 7.6 Gigs 的可能已被转移到交换的东西。大约 40 Gig 的数字是我正在测试的工具的作者所说的我的工作应该使用的数字。

当我从 SGE(使用 qstat 或 qacct)获得这些数字时,困惑就来了。 qacct -j 7270916 在这里我看到

mem 2768.453
maxvmem 4.078G
Run Code Online (Sandbox Code Playgroud)

然而,这些都没有接近我知道我正在使用的 45.6 gig 的 RAM(尽管 maxvmem 听起来确实应该代表 45.6 gig)。

在作业运行时,我尝试使用此命令 qstat -j 7270916 ,其中看到了以下行:

usage 1: cpu=00:01:37, mem=168.12988 GBs, io=38.64676, vmem=1.665G, maxvmem=4.078G
Run Code Online (Sandbox Code Playgroud)

我想 mem 是运行中使用/释放/使用/释放的所有 RAM 的总和(它刚刚完成),但 maxvmem 仍然很低(远低于我预期的 45.6 gigs)。

所以我对 qcct 和 qstat 的使用都生成了与预期数字不一致的数字(我在顶部看到)。

有没有人有关于如何在运行完成后使用 SGE 命令获取有意义的 RAM 使用量的建议?

编辑:我使用的是 SGE 6.2u5

memory gridengine

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

如何在 Sun Grid Engine 上保留完整节点?

如何使用 SGE 在集群上预留完整节点?

我不希望一台机器有 2 个处理器,另一台机器有 3 个处理器,依此类推。我有一个四核集群,我想保留 4 台完整的机器,每台机器有 4 个插槽。我不能只指定我想要 16 个插槽,因为它不能保证我将在 4 台机器上每台都有 4 个插槽。

将分配规则更改为 FILL_UP 是不够的,因为如果没有完全空闲的机器,SGE 将尽可能地“填满”负载最少的机器,而不是等待 4 台空闲机器然后调度任务。

有什么办法可以做到这一点吗?有没有更好的地方来问这个问题?

cluster gridengine

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

Sun Grid Engine 上的队列重叠?

我们想要一个基于 SGE 的计算集群,其中有一个队列可以让计算人员访问所有节点,另一个集群队列可以让其他人员偶尔(但大量)使用一半的节点.

我们希望限制第二个队列的资源,以便计算人员可以继续做一些工作,即使非计算人员偶尔(但大量)使用。职员。

有没有办法为一个节点集合设置两个(或多个)SGE 队列,这样一个队列可以包含所有节点,第二个队列包含相同节点的子集,并且两个队列同时运行?

我会研究哪些特定的 SGE 配置参数来设置这样的东西?

cluster gridengine grid

5
推荐指数
1
解决办法
2952
查看次数

如何为 CUDA 设备设置 SGE?

我目前面临将 GPU 服务器集成到现有 SGE 环境中的问题。使用谷歌我找到了一些集群的例子,其中已经设置了这个,但没有关于如何完成的信息。

是否有某种形式的方法或教程?它不必非常冗长,但它应该包含足够的信息来启动和运行“cuda 队列”......

提前致谢...

编辑:要设置一个负载传感器,了解一个节点中有多少 GPU 是空闲的,我已经完成了以下操作:

  • 将 GPU 的计算模式设置为独占
  • 将 GPU 设置为持久模式
  • 将以下脚本作为负载传感器添加到集群配置中(并将其设置为 1 秒。)
#!/bin/sh

主机名=`uname -n`

而 [1]; 做
  读取输入
  结果=$?
  如果 [ $result != 0 ]; 然后
    出口 1
  菲
  if [ "$input" == "quit" ]; 然后
    退出 0
  菲


  smitool=`which nvidia-smi`
  结果=$?
  如果 [ $result != 0 ]; 然后
    gpusav=0
    gpu=0
  别的
    gpustotal=`nvidia-smi -L|wc -l`
    gpusused=`nvidia-smi |grep "进程名称" -A 6|grep -v +-|grep -v \|=|grep -v 用法|grep -v "没有运行"|wc -l`
    gpusavail=`echo $gpustotal-$gpusused|bc` …

gridengine cuda

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

是否有集群资源调度器抽象层?

我正在编写一个应用程序,它可以使用非常基本的功能在任何集群资源调度程序(SGELSFSLURM仅举几例)上运行。

我想知道是否存在框架/抽象层以与产品无关的方式与此类工具进行交互?

cluster gridengine scheduler grid

4
推荐指数
1
解决办法
122
查看次数

如何在gridengine 中以root 身份运行序言脚本?

在我们的一个计算集群中,我们拥有具有独特硬件资源的系统,对这些资源的访问由设备文件权限控制。每个节点有两个或四个,以及多个 CPU 内核。我们希望能够在同一节点上安排不同用户的作业,并限制对正确分配资源的访问。(某些队列甚至可能仅占用 CPU,无法访问。)

有一段时间,我们一直遵循“嘿,注意,玩得开心”的政策,但即使有最好的意图,每个人也很难保持直率。因此,我们只是一次为给定用户调度整个节点。这对于单线程、单进程的任务来说是浪费的。

使用 Torque,您可以在作业开始之前以 root 身份运行序言脚本。这可以用来适当地设置设备权限。但是我们正在运行(née Sun)网格引擎。它具有每个队列的prolog脚本,但它们以作业所属的用户身份运行(如 Torque 的prologue.user),这在这里没有帮助。

是否有明显的我遗漏的东西(我希望),或者解决这个问题的替代方法?我意识到我有源代码,因此可以做任何事情,但我希望有一种标准的方式我只是想念。

谢谢!

resource-management gridengine

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

在集群上使用 ionice

背景:

我在工作中使用计算集群(4 个从节点和 1 个头节点),它使用 SGE 作业调度程序。最近我们一直在运行一些执行大量 IO 的作业,它一直在减慢 shell/vim 的使用(小 IO,但我们需要它 24/7 平稳运行)。我找到了 ionice,它似乎是一台计算机的完美解决方案,但我不确定它对集群是否有帮助......

题:

如果我通过带有 ionice 设置(-c2 -n0)的头节点运行一个进程(比如 vim),它是否仍然比其他计算机上的进程(从属设备上的高 IO -c2 -n4)上的进程优先于共享 HD ?

谢谢你的时间!

cluster nfs io ionice gridengine

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