具有HPC资源的桌面软件,用于处理后端号码


17

我们的工作组将生成一个桌面应用程序,该应用程序可模拟建筑的能源绩效。它是一个.NET应用程序,当用户运行大量仿真时,它们可能会非常耗时。这些模拟是完全可并行的,并且我们在“办公室”中拥有一些非常重要的HPC计算资源。

我们拥有的一个想法是允许用户卸载我们知道将运行很长时间的模拟(而每个单独的模拟运行大约30-120秒,运行大量的模拟可能需要几天的时间)。有人做过吗?如果是这样,您是否使用任何库来简化工作?值得付出努力吗?

编辑添加:

用于卸载模拟的各个任务是

  • 打包文件(约5Mb),
  • 将其上传到我们的服务器,
  • 将包分解为单独的模拟(每个过程大约需要30-120秒,并且可以完全并行化),模拟的数量取决于用户选择的选项数量(绝缘,建筑物方向等)和最差的选择情况每个可能的选项都会导致大约1E50仿真。未知运行100到〜1E5仿真,但是大多数用户运行的数量少于10。
  • 重新组装完成的仿真并下载更大的文件。

我们不确定要使用什么界面,因为我们的小组对此并不陌生,并且由于削减了预算,它可能会及时完成,但是需要易于其他人(如果有)进行维护。

该应用程序已经使用.NET 4,并且可以扩展为使用用户拥有的所有内核(我们的开发机具有8个内核)。


我不太清楚您要在这里做什么-HPC端是否总是会出现在您的服务器或其他专用服务器上?(如果是这样,那应该会更容易,因为您可以在服务器端执行更多操作。)
Aesin

@ Aesin,HPC端将在我们的服务器上,是的。现有的应用程序和新版本在用户的桌面上运行模拟。我正在寻找建议/建议,以考虑如何考虑下一个版本,以便能够将HPC用于更大的用户。
Tangurena '12

Answers:


10

您可以考虑使用Condor:http : //research.cs.wisc.edu/condor/。取决于您所谈论的HPC资源的种类以及它们将改变多少,这可能是过大的。但是,它相当容易上手,并负责启动独立的作业,容错和负载平衡等。

如果您对各个任务(多长时间,异步)以及用于交互的界面(启动过程,库等)更加具体,那将更有帮助。

马特


我不确定condor是否可以与.net(Windows?)一起使用,但是我们的工作组在Linux上使用了condor,我可以推荐它用于提交作业 +1
Sebastian

Condor可以通过文件系统进行通信,因此无需遵循.NET。它确实可以在Windows上运行。
Matt Knepley 2011年

5

如果您使用的是.NET,那么是否了解过.NET 4中的多线程支持;以及要添加到.NET 4.5的异步功能?

多线程无法帮助您将处理任务转移到其他计算机上,但是可以让您更好地利用我们如今正在使用的多核PC。4.0在这方面具有一些不错的功能。

4.5目前处于技术预览版中-因此值得一看,看看是否会有所帮助。MSDN上有一篇文章介绍了上个月左右(十月或十一月,绝对不早于九月)的新异步功能。看起来这些功能是作为并行化传统上较少并行代码的一种方式推出的,但是IIRC它们还包括一些多服务器支持。


4

答案取决于您拥有的HPC后端。该问题涉及NREL用户可用的现有资源。有Linux群集和基于Windows Compute Cluster Server的Windows群集。

  1. 要使用linux群集,作者需要确保模拟例程在Mono(Linux的.NET平台的实现)上运行,并确保在节点上安装了Mono。

  2. 下一个问题是用户是否在计算群集上具有帐户,并且可以将数据获取到节点。最简单的情况是可以从本地PC和节点访问单个文件系统。

    我不确定NREL用户是否可以使用这样的文件系统,因此将涉及一些复制。这已经使事情变得复杂。

  3. 接下来,应用程序应该能够编译作业描述脚本,将其提交给相应的集群,并在排队系统中查询模拟状态,直到作业脱离队列。

  4. 最后,应用程序应该能够检索结果。

所有这一切都是可行的,尽管并非无关紧要,并且将高度特定于此特定实验室的设置。

Ansys或MSC的商业应用程序使用户可以保存模拟作业说明,以后可以在远程群集上以批处理模式运行该作业。

如果可用,更通用的解决方案是使用Grid基础结构。

下一步可能是面向服务的体系结构,其中在某个地方建立Web服务以等待模拟请求并将其分发到集群,从而使应用程序与可用资源的特定知识脱钩。

例如,这在计算生物学中得到了广泛的使用,在该领域中,工具被用来组成完全由Web服务处理请求组成的仿真工作流。

仅需注意,将计算任务卸载到远程计算资源通常用于诸如Android的Google语音识别之类的应用程序中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.