我期待在Linux集群中使用使用MPI的并行文件系统。 我想知道像光泽/并行虚拟文件系统这样的并行文件系统是否需要特殊的硬件支持(特殊的硬盘)。
我有很多用于HPC /集群计算的服务器,我注意到,由于部分计算运行使用NFS上的大文件,这会导致严重的瓶颈。 我想知道如何解决这个问题。 设置: 使用Debian Squeeze的34个服务器(每个42 Gb RAM) 每台机器12个物理内核+ HT 2个“头”机器(头1和头2),每个500Gb驱动器 从头1进行PXE引导的32个“从属”机器 head1导出32个PXE服务器的NFS文件系统 head2通过NFS包含所有其他机器的数据文件导出一个“data”目录 “data”目录包含非常大的文件(5+ Gb) 机器之间的连接:千兆以太网 大多数机器不在同一个物理机架上 使用Open Grid Scheduler(又名Grid Engine)进行批量作业处理 这个集群运行的一个计算包括对于每个“从属”,在开始各种计算之前,读取一大组文件(3Gb + 3Gb + 1.5Gb + 750M)。 我注意到,当发生这种情况时,大多数奴隶在阅读这些消息时实际上花费了大量的时间(几分钟)(而实际的计算速度要快得多)。 目前,我已经提出了head2的NFS守护进程中的线程数量,并且在slave mount选项中将rsize和wsize为32k,但这仍然是一个很大的瓶颈。 我能做些什么来提高性能,还是让奴隶将这些文件存放在硬盘上? 或者我应该去一个完全不同的FS存储?
我正在尝试设置一个具有头节点和2个计算节点的Windows Server群集。 到目前为止,我已经设法安装:(感谢这个教程http://msdn.microsoft.com/en-us/library/jj884142.aspx ) – 使用Windows Server 2012 Datacenter R2和HPC 2012 R2的前端节点 -2x使用Windows Server 2012 Standard R2和HPC 2012 R2计算节点 另外,我通过添加节点向导“添加”我的头节点上的2个节点。 我看到他们被标记为“OK”和“Online”。 但是,当我尝试提交并运行作业时,只有头节点出现在作业上,计算节点没有被使用。 此外,我已经尝试了一个testing程序,使群集中的每个节点都使用MS MPI写成C语言的“Hello”,并且只有头节点出现工作。 (工具使用Visual Studio 2012旗舰版,MS MPI库,直接在头节点编译)。
双sockets主板的每个CPU都有无限的频段适配器吗? 也就是说,如果有两个infiniband频段适配器,每个CPU的PCIe插槽中都有一个。 这是否消除了通过QPI的信号,或者是信号通过QPI传播的时间可以忽略(因此可以使用一个适配器)?
给定一个拥有数百/数千个节点的大型Linux HPC群集 。 为了获得最好的LINPACK基准testing ( HPL )结果,您可以提交 Top500超级计算机列表 的最佳做法是什么? 给你一个想法,我想在这里得到什么样的答案是一些子问题(带有链接): 如何调整 HPL.dat文件的参数 ( N , NB , P , Q ,内存alignment方式等)(无需花太多时间尝试每个可能的排列 – 特别是大问题N)? 是否有任何Top500 提交规则要注意? 什么是允许的,什么不是? 哪个MPI产品,哪个版本? 这有什么不同吗? MPI机器文件中的任何特殊主机命令 ? 你用CPU钉住 ? 如何configuration互连 ? 哪个互连? 你使用哪种CPU型号的BLAS软件包? ( 英特尔MKL , AMD ACML , GotoBLAS2等) 你如何准备大运行 (在所有节点上)? 从节点子集上的小运行开始,然后扩展? 是否真的有必要在所有节点上运行LINPACK(或允许外推)? 你如何优化最新的英特尔/ AMD处理器? 超线程 ? NUMA ? 重新编译软件堆栈还是使用预编译的二进制文件是否值得? 哪些设置? […]
在HPC群集上启用Ondemand GOvernor是否有助于节省电力? HPC平台中是否启用了睡眠状态(C状态)? 如果不是,这背后的原因是什么?
目前,我正在为我的雇主负责一个快速增长的Hadoop集群,该集群目前build立在0.21.0版本上,CentOS作为每个工作者和主节点的操作系统。 我已经完成了大部分标准configuration问题(负载均衡,HDFS的IO规划,确保有足够的磁盘空间可用于溢出操作等等),但是没有find关于pipe理文件描述符数量的好文档每个任务跟踪器,数据节点,映射器或Reducer所需的。 到目前为止,我已经阅读过的文档(跨Hadoop和HBase)隐约地指向溢出操作,当它试图写入磁盘时,会同时消耗大量的描述符。 这个文档当然不提供所述描述符的范围或预期的生命周期的细分。 唯一的build议是提高系统的限制,这是一个合理的解决办法,而且作为长期规划战略是虚假的。 我没有关于Hadoop对所需文件描述符数量的假设的信息。 因此,在普通作业(即,不依赖MultipleOutputs)的生命周期中,每个映射器,Reducer,任务跟踪器和数据节点所需的文件描述符总数的configuration相关计算将非常有用。 目前是否有这样的计算?如果是这样的话,我可以合理地估计一下,我的极限应该与定义的任意数量的工作相关吗? (为了增加这个问题的可能性,其他人会遇到这个问题,当可用的描述符池已经耗尽时,Hadoop会高兴地抛出java.io.EOFException和java.io.IOException(指向一个坏文件描述符)。因为这些例外所包含的信息是非常通用的,所以花了我几个小时来追查。)
所以这里是设置:我们临时访问一个非常大的TCP广域网连接,我们想用这个pipe道来做广域网文件系统testing。 我们想立即生成大量的数据,并将其写入另一端的文件系统。 我们有大量的服务器可以使用,所以用正确的模拟产生足够的数据不是问题,但是我们想模拟实际的HPC应用程序数据,而不是像pipe道/ dev / zero那样的东西。 就像我刚才提到的那样,我们正在寻找实际的数据,所以寻找比iperf或netperf更多的东西。 那么我的问题是,你们是否知道任何HPC应用程序数据模拟器? 如何testing写入数据到链接的另一端? 编辑: 我正在接近寻找一个符合法案的工具。 最有前途的是MADbench2 ,它是适用于并行I / Otesting目的的实际科学仿真代码。 我将在本页上列出更多工具列出并行I / O Benchamrks 目前还不清楚哪一个实际上是写数据,这实际上是我们的目标。
我在Ubuntu 12.04上的一个AWS EC2实例(c3.8xlarge)上有一个很大的分析工作。 目标是以100%的CPU加载服务器,运行尽可能多的内存允许的任务(不同的金额,但一般1-3gb每个工作)。 我最初的想法是提供一个大型实例,并运行32个同步处理作业 – 每个核心一个。 然而,这些工作会从文件(通常是同一个文件)中进行大量的读取,大量的gzipping / unzipping,以及基本上大量的磁盘重量的东西。 以前,当我在m3.xlarge节点(15GB内存,4核心)上运行一个testing时,我可以在4个同时作业中获得100%的CPU利用率。 然而,我最初的结果是使用60GB内存的32核心的情况更糟。 我怀疑服务器硬盘上的瓶颈,这是目前通用的SSD(不configurationIOPS)。 所以问题是 – 这里有什么更好的? 我是否尝试为磁盘提供更高的IOPS,或尝试某种RAID设置,以便大型服务器可以处理更多作业? 或者,我总是要通过在群集中启动几个较小的服务器来获得更好的整体吞吐量,而不会在一个磁盘上同时运行30多个作业的磁盘瓶颈? 这里不是HPC专家,所有的build议都表示感谢。
我正在学习我的学校gradle论文。 主要目标是创build基于Web的应用程序,在这个应用程序中,login的用户可以看到空闲和繁忙的节点,打开和closures它们,看看它们正在运行什么过程等等。我发现我可以做这样的事情 – 写一些会运行的cron守护进程每30秒左右一次,每个节点都可以运行ping工具查看是否打开,然后将结果写入某个文件。 然后从我的networking应用程序(我会写在PHP中)我可以读取信息。 这是一个很好的解决scheme吗? 你会如何build议我这样做? 最后,是否有任何现有的解决scheme(它可能不是一个明确的基于ewb的)pipe理集群节点?