问题标签 [grid-computing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2623 浏览

grid-computing - Sun Grid Engine 重新提交作业卡在“Rq”状态

我有一个我希望是一个非常简单的问题,但我对 Sun Grid 不是很熟悉,所以我一直很难找到答案。我目前正在使用 bash 提交脚本将作业提交到网格,该脚本生成命令然后执行它。我在网上读到,如果太阳网格作业以 99 的代码退出,它会重新提交到网格。我已经成功编写了我的 bash 脚本来执行此操作:

当我使用我知道具有非零退出状态的命令将该作业提交到网格时,该作业确实似乎被重新提交,但是调度程序从未将其发送到另一台主机,而是它仍然停留在队列中状态“Rq”:

我觉得这在队列的配置选项中很简单,但我无法在谷歌上找到任何东西。我已经尝试使用该选项提交这份工作qsub -r y,但这似乎并没有改变任何东西。

谢谢!

0 投票
2 回答
2151 浏览

c++ - 为什么 mpi_bcast 比 mpi_reduce 慢这么多?

使用 MPI,我们可以进行广播以将数组发送到多个节点,或者进行缩减以将来自多个节点的数组组合到一个节点上。

我猜想实现这些的最快方法是使用二叉树,其中每个节点要么发送到两个节点(bcast),要么减少两个节点(reduce),这将给出节点数量的时间对数。

似乎没有任何理由表明广播会比减少特别慢?

我在 4 台计算机集群上运行了以下测试程序,其中每台计算机有 12 个内核。奇怪的是,广播比减少慢得多。为什么?我能做些什么吗?

结果是:

代码是:

集群节点运行 64 位 ubuntu 12.04。我尝试了 openmpi 和 mpich2,得到了非常相似的结果。网络是千兆以太网,不是最快的,但我最好奇的不是绝对速度,而是broadcast和reduce之间的差距。

0 投票
0 回答
321 浏览

javascript - 网络上的网格计算

当他们使用web worker.

如您所知web worker,在浏览器后端运行安全线程,这不会影响主网站,因此网站可以使用客户端处理器来计算诸如破解或分机之类的东西。

我正在尝试将其实现为免费和开源服务,并通过网站获取代码(例如谷歌分析或...),因此当用户在我访问此站点期间单击使用我的处理器时,网络工作者开始,从服务器获取数据,计算并将结果发送到服务器。

现在我有两个问题:

第一:你怎么看这个想法?有用吗?

sencod:我如何确定 web worker 中的 cpu 使用情况?这可能吗?(也许有人有核心 i7,所以可以在他的浏览器上运行更多 web worker)

0 投票
2 回答
95 浏览

grid - Difference between gLite and OpenNebula

What is the difference between gLite and OpenNebula? I intend to differences in structure and in usage. When to use the one and when the other?

0 投票
4 回答
9115 浏览

matlab - 如何在 Octave 中读取 hdf 数据

我正在做遥感项目。在 matlab 上使用 HDF 非常容易。但我想用网格计算(Ubuntu)来实现这个。所以我正在尝试使用八度音阶。我有叶绿素的 HDF4 文件。普通图像处理将很容易按倍频程完成。但我想了解 Octave 中的 hdfread、hdftool。我在八度图像中添加了一个图像包。谁能告诉我如何阅读以及如何使用 hdf 数据。有没有要添加的包。请让我知道这件事。

  • 如何读取hdf数据
  • 如何加载hdf数据
  • 如何从 hdf 数据中检索图像
0 投票
1 回答
324 浏览

hadoop - 将单个进程分布在集群中的最佳方法

我对集群计算非常陌生,想更多地了解用于集群计算的各种软件,哪些软件最适合特定任务。特别是,我试图解决的问题涉及 Manager/Workers 类型的场景,其中一个 Manager 负责创建 100 到 1000 个工作。每个作业虽然相对较大,但必须逐帧执行。即经理会告诉每个工作,“提前一帧并向我报告”。单个帧的执行将非常小,因此 Manager 和 worker 机器之间的延迟必须非常小,大约为微秒。

谢谢!任何信息都将不胜感激,即使是那些不完全符合我所描述的场景的信息,只是为了给我一个起点。到目前为止,我研究过的一些是 Hadoop、HTCondor 和 Akka。

0 投票
3 回答
9479 浏览

linux - 如何在 qsub 命令中使用管道或重定向?

我想使用 qsub(SGE 8.1.3,CentOS 5.9)在网格上运行一些命令,这些命令需要使用管道(|)或重定向(>)。例如,假设我必须并行化命令

(显然是一个简化的例子:实际上我可能需要将像 bowtie 这样的程序的输出直接重定向samtools 。如果我这样做了:

的结果内容hello.txt看起来像

同样,如果我使用管道 ( echo "hello world" | myprogram),则该消息将传递给myprogram,而不是实际的标准输出。

我知道我可以编写一个小的 bash 脚本,每个脚本都包含带有管道/重定向的命令,然后执行qsub ./myscript.sh. 但是,我正在尝试使用脚本同时运行许多并行化作业,因此我必须编写许多这样的 bash 脚本,每个脚本都使用稍微不同的命令。在编写此解决方案的脚本时,可能会开始感觉非常骇人听闻。Python中此类脚本的示例:

这令人沮丧有几个原因,其中我的程序甚至无法删除许多jobXX.sh脚本以自行清理,因为我不知道作业将在队列中等待多长时间,并且脚本必须工作开始时到场。

有没有办法将我的完整echo 'hello world' > hello.txt命令提供给 qsub ,而不必创建另一个包含该命令的文件?

0 投票
0 回答
160 浏览

python - 减少 Python 子进程的系统时间使用

我有一个 python 脚本,它使用多处理的 pool.map( ... ) 并行运行大量计算。这些计算中的每一个都包含为 fortran 程序设置输入的 python 脚本,使用 subprocess.popen( ... , stdin=PIPE, stdout=PIPE, stderr=PIPE ) 运行程序,将输入转储到它并读取输出。然后脚本解析输出,获取所需的数字,然后再次执行下一次运行。

无论如何,关于问题的原因。我将此脚本提交给网格引擎系统,以将这个巨大的参数空间扫描分解为 1000、12 核(我选择 12,因为大多数网格是 12 核)、任务。当单个任务在单个 12 核机器上运行时,机器大约 1/3 的时间用于系统工作,而另外 2/3 的时间用于用户计算,大概是设置 ECIS 的输入(前面提到的 FORTRAN代码),运行 ECIS,并解析 ECIS 的输出。然而,有时 5 个任务被发送到 64 核机器以利用其 60 个核。在那台机器上,40% 的时间花在系统工作上,1-2% 时间花在用户工作上。

首先,所有系统调用来自哪里?我尝试编写一个程序版本,该版本每个单独的线程运行一次 ECIS 并不断向它输送新的输入,它在系统中花费了更多时间(并且总体上更慢),所以这似乎不是由于所有进程创建和删除。其次,如何减少花费在系统调用上的时间?

猜测一下,打开一个进程一次并继续向它发送输入会比较慢,因为我必须关闭 gfortran 的输出缓冲才能从进程中获取任何内容,其他任何工作都没有(除了修改 fortran 代码......这不是发生)。

我开发这个的家庭测试机器上的操作系统是 Fedora 14。网格机器上的操作系统是 Red Hat 的最新版本。

我尝试过使用 bufsize,将其设置为 -1(系统默认值)、0(无缓冲)、1(逐行)和 64Kb,这似乎不会改变事情。

0 投票
2 回答
192 浏览

java - 网格计算中用于发现客户端的软件

在网格计算中,服务器用于发现客户端并获取有关它们的信息的实际软件实践是什么?例如,客户端的名称、可用内存量、客户端当前是否正在执行任务(以及完成了多少任务)等。还是相反?客户端是否偶尔向服务器报告该信息?

这会通过 RPC 完成吗?还是消息传递协议(AMQP、STOMP)?

我还想知道是否使用相同的方法向客户发送各种工作/任务以完成?

如果可能的话,我正在寻找一个 Java 友好的解决方案。

谢谢!

0 投票
2 回答
328 浏览

java - 在 JAVA (VMM) 中创建多个 JVM

我的教授让我在 JAVA 中创建多个 JVM,这是我最后一年志愿计算项目的开始,但是我无法找到在 JAVA 中创建 JVM 的解决方案,基本上我想构建一个 VMM(虚拟机管理器) . 我试过搜索它,但我发现了类似的东西,通过命令行创建 JVM。谁能告诉我,我可以从哪里开始?此致。