不请自来.
我个人有构建小型超级计算集群来回答主题问题的经验.
一台超级计算机具有数百个CPU和数万个G的内存. 它如何组织这么多的硬件工作?首先,“超级计算机”这一说法本身是不正确的. 它实际上是一个“超级计算集群”. 换句话说,超级计算并不是占用大量CPU和内存的大案例.
只有一个linux系统或多个系统控件
根据我构建小型集群的经验高性能计算机系统,通用超级计算集群是一组通过高速网络(例如InfiniBand)连接的服务器. 每个服务器都有自己的CPU,内存,加速卡和自己的系统,但是存储通常是共享的. 当然,在很多情况下,对于tous(lan),这些服务器的软件和硬件配置,包括CPU的类型和数量,内存的类型和数量是一致的,以及操作系统用户系统的配置参数是同步的. 如何调动计算资源(即,使用了多少个内核,以及使用哪个内核来计算要解决的问题的哪一部分),由应用程序操作员和应用程序代码本身确定. 对于开放式超级计算服务,通常会在其上安装作业调度系统. 也就是说,每个人都提交一份工作任务,并告诉系统要使用多少计算资源以及运行什么资源,然后调度系统根据某种算法选择启动计算程序的机会.
家用PC和普通服务器之间存在区别. 实际上,没有本质区别. 与普通服务器的主要区别在于:
此外,与家用PC的主要区别在于:
如果可能,首先介绍大型服务器和工作站与PC之间的区别,然后比较超级计算机之间的区别. 这三者的共同点是它们都是通用计算机,并且理论上它们可以完成的任务是相同的. 两者之间的根本区别在于设计意图不同. 以服务器为例,服务器的设计是为了达到“安装在机房内,无需管理员物理维护即可稳定运行”的目的. 因此,服务器通常具有各种冗余配置,并且大多数服务器都配备了BMC芯片,可以对其进行远程管理,以便于服务器的远程维护. 显然,服务器不需要声卡(可以发出蜂鸣声的蜂鸣器就足够了),图形卡(可以显示tty的集成图形卡). 以我的理解,工作站是家用PC和服务器之间的产品. 它通常具有某些服务器特性,例如更高的计算能力. 但是该设计仍然是供人使用的,即使用时,用户正坐在它前面,因此显然配备了一些与人打交道的设备,并且它并没有过多地关注远程维护.
最后,让我们谈谈Linux系统作为控制原理. Linux本身没什么特别的,但是上面安装的软件可以完成控制功能. 一般来说,这样会启动一个计算程序
用户在节点(即服务器)上启动特殊程序,指定特定的计算应用程序,并指定计算资源的分配(即,需要多少个内核以及使用哪些服务器). 该程序负责与其他节点进行通信建立连接,完成身份验证并在每个远程节点上启动此特殊程序. 这些特殊程序通过某种机制建立了低延迟高性能计算机系统,高带宽的数据传输连接. 这些特殊程序在每个节点上启动并指定. 计算应用程序进程的数量,并为这些进程提供消息传输通道. 在具有任务计划系统的集群中,第一步是由任务计划系统执行,而不是由用户执行.
以及如何充分利用超级计算机的功能.
这个问题更有趣,它需要对特定问题进行具体分析. 一般来说,它是分析计算应用程序速度的瓶颈,然后调整瓶颈的算法,硬件或配置.
补充:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-251842-1.html