计算机集群(cluster)指一些松散的计算机系统,通过告诉网络连接,协同工作。集群对用户来说就像单台计算机系统,只不过是有更高的性能和更高的可靠性。集群中的每台计算机叫做节点。
常见集群类型
高性能计算(HPC, high performance computing)
主要用于科学计算,多用于科研领域,一般的商业领域较少用到该类集群。最开始出现的集群就是为了高性能计算设计的。集群出现之前,科学计算都采用大型主机计算。这类主机一般都采用封闭设计,价格非常昂贵。集群的目的就是使用多台普通PC搭建系统,以低廉的价格提供可以匹敌大型机的计算能力。
Beowulf cluster是该类系统的代表。这类系统的核心技术:1)并行算法。2)节点间通信。
并行算法
传统的算法大多是顺序执行(serial execution)。为了发挥集群的效能,需要让计算任务在多个节点上同时运行,这就需要并行算法。并行算法和多进程(线程)不同:并行算法是一个算法,同时在多个处理器上运行,每个处理器上执行的任务是有关联的,最终产生一个结果;多进程(线程)每个处理器上执行的任务是不想关的,每个任务都有自己的结果。Oracle中有个并行处理(parallel processing)功能,
普通SQL处理
普通的SQL处理只能使用一个CPU,但是可以运行多个进程(server process)同时处理多个SQL。每个SQL处理之间没有关联,都有自己的最终结果。
并行SQL处理
可以使用多个CPU,比如在执行查找时,可以将表中数据分成若干个集合,每个集合分给一个CPU执行,最后将每个CPU的结果汇总,形成最终结果。多个CPU之间是有关系的,最终只有一个结果。具体请参考oracle关于paralle processing的介绍。
节点间通信
确定了并行算法后,需要将任务分给不同的节点运行,这就涉及到了节点之间如何通信。
Message Passing Interface (
MPI