我有5台PC通过交换机通过局域网连接。
我想连接它们以形成一个HPC群集。 操作系统可能是任何Linux版本(目前我已经安装了Ubuntu 8.10,9.10和Fedora 10)
群集的目的
1.执行使用OpenMP开发的C代码并提供高性能。
2.充当我开发的JSPdynamicweb文档的负载均衡集群。
我更愿意开发一个集群来解决这两个目的,但最糟糕的情况是希望我的集群能够满足第一个目的。
我也希望开发一个没有一个节点瓶颈的集群,如果这个集群不成功,就意味着整个系统的失效。 相反,我希望我的集群继续使用剩余的节点,即使很less(甚至是最重要的)节点都失败了。
任何forms的帮助,将不胜感激。
感谢致敬
我不认为你可以用OpenMP来做你想做的事情。 OpenMP是为共享内存编程而devise的。 其中一个例子是在同一台机器上使用多个核心和/或处理器。 一个集群(至less是由商品硬件制成的典型集群)是分布式内存。 通常MPI用于编程这些types的机器。
有几个解决scheme来pipe理分布式内存集群。 我熟悉的是xcat和warewulf 。 通常,这些types的系统具有在空闲节点上运行作业的作业队列。 如果某个节点出现故障,则使用该节点的任何作业都可能会失败,但作业将继续在其余节点上进行调度。
我会看看GridEngine(任何变体)。 在Ubuntu上安装很容易,并且对运行使用相同资源的各种应用程序有极好的支持。 您可以为不同types的应用程序指定不同的队列,甚至可以为从属队列指定不同的队列,以便优先级较高的任务可以将较低优先级的任务从节点中删除。
在您的情况下,您可以将负载平衡器任务作为作业提交给调度程序,在必要时可能会在某种程度上被HPC任务抢先。
就节点失效的弹性而言,这当然是涵盖的。 一般情况下,除非您有跨多个节点的任务,否则单个执行节点的故障应该对群集的其余部分没有影响。
如果您只想运行简单的应用程序,并且不希望群集全天候运行您应该使用PelicanHPC来实现即时HPC。 pareto.uab.es/mcreel/PelicanHPC从主节点启动PelicanHPC并启动另一台计算机troughtnetworking。 教程: http : //pareto.uab.es/mcreel/PelicanHPC/Tutorial/PelicanTutorial.html
build立一个相当不错的排队系统“贝奥武夫”
也许你可以和Rocks Clusters合作 ,一个分配devise来适应你的第一点的需求。 它主要用于科学环境,并且相对易于在多个节点(PXE)上设置。 它还包含像几个MPI实现(OpenMPI,mpich,…)和Sun Grid Engine的预包装软件。 整个发行版基于CentOS / RHEL,所以如果您已经熟悉Fedora,则在安装过程中不会有任何麻烦。