问题标签 [hpc]

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 回答
548 浏览

hpc - 继续重试 HPC 任务,直到资源可用 (Windows HPC Server 2008 R2 SP3)

HPC 任务要么成功要么失败,但是我如何将“稍后尝试”传达回调度程序,确定我可以使用失败并重新提交任务,但我需要一种方法来确定我是否因为某些东西被破坏而失败(放弃)或稍后再试,因为此任务正在等待另一个任务(并继续尝试,直到我们出错或成功完成)

有没有办法使用 HPC API 或类似方法来实现这一点?据我所知,任何非零都是失败,零是成功,就是这样,肯定有一个很好的方法来实现这种“稍后尝试”的行为。

背景

我们试图在一个作业中运行多个 HPC 任务,这些任务之间存在复杂的相互依赖关系,因为第一个任务正在执行其他任务,等待第一个任务处理足够的数据,以便他们可以开始(一种级联执行,但不是以任何简单的顺序执行,因此我们无法在 HPC 中定义依赖关系)。

最初,我试图让这些多个任务在多个内核之间共享,这样它们就可以在等待主要任务完成他们感兴趣的任务时休眠。类似于 Windows 分时进程的方式。现在很清楚,HPC(按设计!)每个核心只允许一个任务,所以如果你有一台八核机器,你一次只能运行八个任务。

解决方案似乎是使用批处理文件或类似文件来生成多个进程,但是在我走这条路之前,我想知道上述问题是否可行。

0 投票
1 回答
1432 浏览

c# - 如何在 HPC 中优化 SOA 请求

我想用HPC做一些模拟,我打算用SOA。我有一些示例材料中的以下代码,我对其进行了修改(我首先添加了这个)。目前我偶然发现了优化/性能不佳的问题。这个基本示例什么都不做,除了查询服务方法,这个方法返回它在参数中获取的值。但是我的例子很慢。我有 60 台具有 4 个核心处理器和 1Gb 网络的计算机。发送消息的第一阶段大约需要 2 秒,然后我必须再等待 7 秒才能返回值。所有的价值都在同一时间或更多。我遇到的另一个问题是我不能重用会话对象,这就是为什么这首先是在外部使用我想把它放在里面使用,但是我得到了超时,或者 BrokerClient 结束的信息。

我可以重用 BrokerClient 或 DurableSession 对象吗?

如何加快消息传递的整个过程?

使用 Session 而不是 DurableSession 的第二个版本效果更好,但我对 Session 重用有疑问:

在 EndRequest 的第二次运行期间出现异常:服务器没有提供有意义的回复;这可能是由于合同不匹配、会话过早关闭或内部服务器错误造成的。

0 投票
1 回答
458 浏览

c++ - Boost::HPC 侵入式

boost::intrusive用于高性能计算的库有多好?我想为不可复制的不可分配类使用容器。我打算将普通 STL 与shared_ptr. 我发现它boost::intrusive也可以用于相同的目的。所以我的问题是,它们真的那么高效吗?

shared_ptr如果在具有类型的 STL 容器和您更喜欢哪一个之间给出一个选项boost::intrusive

0 投票
2 回答
407 浏览

tree - 遍历分布式文件系统上的文件

我有一个包含几亿个文件(几 PB)的文件系统,我想获取 stat 将返回的几乎所有内容并将其存储在某种数据库中。现在,我们有一个 MPI 程序,它从中央队列和工作节点提供目录名称,这些工作节点通过 stat 调用来猛击 NFS(它可以在不费力的情况下处理这个问题)。然后工作节点点击 postgres 来存储结果。

虽然这有效,但速度很慢。在现代 30 节点集群上,单次运行将需要 24 小时以上。

有没有人对拆分目录结构而不是集中队列有任何想法(我的印象是,为此的确切算法是 NP 难的)?另外,我一直在考虑用 MongoDB 的自动分片和多个路由器替换 postgres(因为 postgres 目前是一个巨大的瓶颈)。

我几乎只是在寻找有关如何改进此设置的一般想法。

不幸的是,使用诸如 2.6 内核审计子系统之类的东西可能是不可能的,因为在每台命中该文件系统的机器上运行它(以政治方式)将是极其困难的。

如果重要的话,每台使用这个文件系统的机器(几千台)都在运行 linux 2.6.x。

这样做的实际主要目的是查找早于某个日期的文件,以便我们能够删除它们。我们还希望收集有关文件系统使用方式的一般数据。

0 投票
4 回答
287 浏览

optimization - 为台式机和超级计算机编写的代码有什么区别?

假设地说,如果我的科学工作是在开发功能/模块/子程序(在台式机上),我需要知道什么才能将其整合到在超级计算机(可能模拟分子)上运行的大规模模拟中、流体、反应等)?

我的印象是,它与尽可能利用某些库(例如,BLAS、LAPLACK)、修改算法(减少迭代)、分析、并行化、考虑内存-硬盘-处理器的使用/访问有关……我是意识到这句格言,“想要优化你的代码?不要这样做”,但如果有人有兴趣学习编写高效的代码,可以参考哪些参考资料?

我认为这个问题与语言无关,但由于许多用于生物分子模拟、气候建模等的数字运算包是用 Fortran 的某个版本编写的,所以这种语言可能是我感兴趣的目标(而且我在 Fortran 中进行了相当广泛的编程77)。

0 投票
2 回答
2421 浏览

python - 如何使用 MS HPC Server 2008 R2 的 MPI 堆栈成功编译 mpi4py?

所以故事是这样的:我需要一个用于 Python 的 MPI 包装器。

我知道有mpi4py。对于目前我(主要)使用 Python 和 Windows 的工作,我想使用 Microsoft HPC Cluster Pack,可以访问一些运行 Win 2008 Server 的非常“强大”的机器。顺便提一下,除了 Win-experience,我在 MPI 和其他东西方面确实有一点 *nix 经验,但这对于这个问题来说是非常有争议的。

当我遇到Python Tools for Visual Studio时,我重新对 mpi4py 产生了兴趣。这是一些非常棒的东西。任何喜欢 Visual Studio 和 Python 的人都应该尝试一下。干得好,调试器很棒。

PTVS 的文档页面表明 mpi4py 的安装很容易……对于 ActiveState Python 来说,这似乎是真的。但是,如果您不使用 ActiveState 的 Python 而是使用来自 python.org 的“普通”Python 发行版,那么您似乎有点不走运。

我的开发机器是带有 Win7 64 位和 Python 2.6 的笔记本电脑,有 64 位和 32 位两种版本。我已经安装了 MS HPC Pack 2008 R2 MS MPI 和 SDK。我有 Visual Studio 2008 和 2010,一切都尽职尽责地修补了。

没有二进制安装程序,并且知道 Unix MPI 如何对其链接的 MPI 版本非常挑剔,我想构建自己的 mpi4py。mpi4py 基本上依赖于将 python 调用绑定到 MPI 库的 MPI .dll(实际上是 .pyd)。

mpi4py 的 easy_installing 和该库的构建失败 - 无法指向 MPI 库。好的,没问题,我下载了 mpi4py 压缩包,解压缩并更改了mpi.cfg文件,使其指向正确的文件夹:

MS MPI 安装程序注册一个环境变量 CCP_HOME 指向包的确切安装位置。“CCP”这个名字必须是从它被称为 Microsoft Compute Cluster Pack 的时候遗留下来的)。必须将此传递给原始的 mpi4py 开发人员。

在此之后,编译通过正常,但我无法链接 - 有三个未解决的外部:

似乎 HPC 2008 R2 中的 MS MPI msmpi.lib 没有实现这些,所以我无法构建 MPI.pyd。

我可以尝试在 mpi4py C 源文件中注释掉这些,但我认为这不是正确的路径。

提前致谢!

0 投票
3 回答
1101 浏览

python - Python 如何在 LSF 分配了 4 个内核的集群上看到 12 个 cpu?

我访问了一个使用 LSF 分配资源的 Linux 集群,我认为这是一个常用工具,来自 Scali ( http://www.scali.com/workload-management/high-performance-computing )。在一个交互式队列中,我询问并获得了最大内核数:4。但是如果我检查 Python 的多处理模块看到多少 cpu,数字是 12,即我被分配到的节点的物理内核数。看起来多处理模块在考虑 LSF 应该/将强加的界限方面存在问题。这是 LSF 或 Python 中的问题吗?

0 投票
2 回答
492 浏览

parallel-processing - 基于应用程序(使用的)OpenMPI

请帮助我找到一些使用 openmpi 的工作应用程序。我需要任何具有广泛/全球使用并基于openmpi(使用它)的应用程序名称。至少那种应用程序的名称就足够了。

谢谢

0 投票
3 回答
1264 浏览

parallel-processing - 何时不使用 MPI

这不是关于 MPI 的特定技术编码方面的问题。我是 MPI 的新手,不想以错误的方式使用库而自欺欺人,因此在此处发布问题。

据我了解,MPI 是一种在分布式内存模型上构建并行应用程序的环境。

我有一个与 Infiniband 互连的系统,其唯一目的是执行一些非常耗时的操作。我已经破解了并行执行的算法,所以我实际上只是使用 MPI 在 Infiniband 上的多个节点之间传输数据(中间步骤的结果),我相信可以简单地使用 OpenIB 来完成。

我是否以正确的方式使用 MPI?还是我歪曲了系统的初衷?

0 投票
2 回答
225 浏览

google-app-engine - 是否可以在谷歌应用引擎上运行并行应用程序(高性能计算)?

有人将 Google App Engine 与 HPC 应用程序一起使用吗?可以做并行吗?您可以使用 java + 线程进行并行处理(至少在理论上),但是您可以获得多少线程?它的效率如何?