我不是3D或HPC人员,但我的任务是对可能的HPC应用程序进行一些研究.读取nVidia Quadro和Geforce卡之间的基准,比较和规格,似乎对于类似的代卡:
有谁知道可以导致这种更好性能的确切和精确的技术差异是什么?我的推测(以及通常可以在网上阅读的内容),因为硬件具有相似的规格,所以它都在驱动程序中.如果是这样的话,Quadro驱动程序提供了哪些功能,3ds Max和其他程序员可以利用这些功能?
当然,我对营销说话不感兴趣:更高的商业价值,专业导向,更好的支持,更好的质量保证等等......
我喜欢InfiniBand承诺的40Gbit/s网络.我的需求没有映射到具有一个核心节点+从属的MPI模型,如果可能,我宁愿不使用MPI.我需要简单的连接/发送/接收/关闭(或其异步版本)API.然而,在MS Azure文档和 Microsoft HPC Pack文档中,我无法找到任何可以使用InfiniBand作为我的应用程序传输的C/C++或.Net API.所以我的问题很简单,如何使用InfiniBand连接到其他节点并向其发送数据包并在另一端接收?(类似于一些Socket API或类似的东西)
Azure上的ND-SPI或Azure上的DAPL-ND 连接/发送/接收/关闭教程是我正在寻找的.
我正在尝试将软件安装到我的Debian Lenny服务器上.具体来说,Capture-HPC.我已经设置了VMWare服务器以及所有先决条件.当我在目录中运行ant时,我收到以下错误:
[taskdef] Could not load definitions from resource net/sf/antcontrib/antcontrib.properties. It could not be found.
Run Code Online (Sandbox Code Playgroud)
有人有什么想法导致这个?有关我的安装的详细信息如下:
Apache Ant version 1.7.0 compiled on April 29 2008
Buildfile: build.xml
Detected Java version: 1.6 in: /usr/lib/jvm/java-6-sun-1.6.0.20/jre
Detected OS: Linux
Run Code Online (Sandbox Code Playgroud)
和build.xml文件...
<?xml version="1.0"?>
<project name="CaptureServer" xmlns:ac="antlib:net.sf.antcontrib" default="release" basedir=".">
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
<condition property="os" value="unix">
<os family="unix"/>
</condition>
<condition property="os" value="windows">
<os family="windows"/>
</condition>
<property environment="env"/>
<property name="src" value="."/>
<property name="build" value="build"/>
<property name="lib" value="lib"/>
<property name="release" value="release"/>
<property name="classpath.build" value=".\lib\junit-4.4.jar"/>
<property name="classpath.run" value="lib/junit-4.4.jar"/>
<path id="classpath"> …Run Code Online (Sandbox Code Playgroud) 我用谷歌搜索了一段时间,唯一有用的信息是:
不幸的是,最新的Arch Linux仅提供CUDA 7.5软件包,因此可能不支持barnex的项目.
Arne Vansteenkiste推荐并发而不是纯Golang或Golang加CUDA.更重要的是,有人说同样的想法是"在GPU上启动goroutine并通过渠道与它通信会不会很酷?".我认为这两个想法都很棒,因为我想尽可能少地改变现有代码,而不是重构整个程序.这个想法是否可行,或者是否有一些文件详细介绍了这个主题?
更新
似乎在Golang中有两个与HPC的绑定:
他们两个都没有记录,目前我得到的只是Macro13的答案,非常有帮助,但它更多的是关于java.所以请帮我一些Golang的详细资料.谢谢!
通常当我使用mpirun时,我可以"超载"它,使用的处理器比我的计算机上的处理器多.例如,在我的四核mac上,我可以运行mpirun -np 29 python -c "print 'hey'"没问题.我现在在另一台机器上,这会引发以下错误:
$ mpirun -np 25 python -c "print 'hey'"
--------------------------------------------------------------------------
There are not enough slots available in the system to satisfy the 25 slots
that were requested by the application:
python
Either request fewer slots for your application, or make more slots available
for use.
--------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
为什么不"超频"mpirun在这里工作?有没有办法可以克服此错误消息并使用比可用处理器更多的处理器成功运行?
当我在集群上启动计算时,我通常会有一个单独的程序在最后进行后处理:
sbatch simulation
sbatch --dependency=afterok:JOBIDHERE postprocessing
Run Code Online (Sandbox Code Playgroud)
我想避免错误输入并自动插入好的作业ID.任何的想法?谢谢
我很想知道是否有人编写了一个利用GPGPU的应用程序,例如使用nVidia CUDA.如果是这样,与标准CPU相比,您发现了哪些问题以及实现了哪些性能提升?
我有一个问题,我必须分析500C5组合(255244687600)的东西.将其分布在10个节点的集群中,每个集群每秒处理大约10 ^ 6个组合,这意味着该作业将在大约7个小时内完成.
我遇到的问题是在10个节点上分配255244687600组合.我想给每个节点提供25524468760,但是我使用的算法只能顺序生成组合,我希望能够传递元素集和一系列组合指标,例如,[0 -10 ^ 7),[10 ^ 7,2.0 10 ^ 7)等,并让节点自己找出组合.
我目前使用的算法来自以下内容:
Stack Overflow问题有效地计算矢量组合
我考虑过使用一个主节点,它枚举每个组合并将工作发送到每个节点.然而,从单个节点迭代组合并来回通信工作所产生的开销是巨大的,并且随后将导致主节点成为瓶颈.
是否有任何良好的组合迭代算法可以实现有效/最佳的分布式枚举?