2015-05-22 33 views
0

我是高性能计算(HPC)方面的新人,但我将拥有一个HPC项目,因此我需要一些帮助来解决一些基本问题。通过RDMA选择共享内存系统,MPI库,原始RDMA还是ULP?

应用场景很简单:通过InfiniBand(IB)网络连接的几台服务器,主服务器的一台服务器和从服务器的其他服务器。只有主机读写内存中的数据(数据的大小范围从1KB到几百MB)到从机中,而从机只是被动地将数据存储在它们的存储器中(并在正确的时间将内存数据转储到磁盘中)。所有的计算都是在主设备上执行,在写入之前或从/从从设备读取数据之后执行。该系统的要求是低延迟(数据的小区域,例如1KB-16KB)和高吞吐量(大数据区域,几百MB)。

所以,我的问题是

1.哪些具体的方式是更适合我们呢? MPI,原始IB/RDMA库或RDMA上的ULP。

据我所知,现有的消息传递接口(MPI)库,原始IB/RDMA库如libverbslibrdmacm和用户级Protocal(ULPS)在RDMA可能是可行的选择,但我不是很确定的适用范围。

2.我应该为操作系统还是IB网络进行调整以获得更好的性能?

存在纸张[1]微软宣布

我们提高了性能 多达八个仔细调整的一个因素, 更改操作系统和NIC驱动

就我而言,我会尽力避免这种性能调整。但是,如果调整是不可避免的,我会尽我所能。我们环境的IB网络是Mellanox InfiniBand QDR 40Gb/s,我可以自由选择适用于服务器的Linux操作系统。

如果您有任何想法,意见和答案,欢迎! 在此先感谢!

[1] FaRM: Fast Remote Memory

+0

我投票结束这个问题主要是基于意见的。列出的每项技术都可以用于实现特定目标中的一个或另一个,尽管在易用性和代码可维护性方面价格不同。没有错综复杂的应用程序网络配置知识,我怀疑任何人都可以回答第二个问题。 –

+0

@HristoIliev感谢您的评论。我想澄清我的问题:首先,哪种方法可以实现我的应用程序的要求?其次,我怎样才能通过选择一个适合我需求的成熟库来避免调优工作(就像快速远程'memcpy')。 – foool

回答

0

如果您使用MPI,你将有一个互连独立的解决方案的好处。这听起来不像是你将要保持20年的东西,但软件的持续时间比你想象的要长。

使用MPI还为您提供了在您的笔记本电脑或工作站上进行调试的好处,然后再将其推出到infiniband机器上。

至于你关于调整网络的第二个问题,我相信你可以做的调整没有结束,但是直到你有一些真实的工作负载和硬数字,你是在浪费你的时间。让事情先行,然后担心优化网络。也许你需要调整许多小包装。也许你需要担心一些大的转移。根据情况调整会有很大的不同。