AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 55214
In Process
cd1
cd1
Asked: 2009-08-18 12:19:09 +0800 CST2009-08-18 12:19:09 +0800 CST 2009-08-18 12:19:09 +0800 CST

如何使用多台计算机作为一个集群?

  • 772

我有 7 台计算机运行带有四核处理器的 Gentoo Linux,我希望能够将程序的执行分发到所有这些计算机。我有一些多线程程序,我想使用集群上的所有 28 个可用 CPU,而不是在每个节点上运行 7 个程序副本。

这就像distcc的想法:我有我的 C/C++ 项目,如果我用distcc而不是编译源代码gcc,它会将编译过程分发到多台计算机,即使在 Makefile 中我也不必更改任何内容。

对于集群,如果我不必更改程序源代码中的任何内容会更好(尽管我认为这是不可能的)。但如果需要,我可以更改程序以使用外部 API。

linux cluster
  • 4 4 个回答
  • 447 Views

4 个回答

  • Voted
  1. 3dinfluence
    2009-08-18T12:32:52+08:002009-08-18T12:32:52+08:00

    有几种方法可以做到这一点,但我怀疑它们中的任何一种都会让您按原样运行代码。

    对于某些类型的工作负载, Hadoop似乎是一个不错的选择,并且被 Yahoo 和其他公司广泛使用和维护。

    Beowulf集群更像是一个传统的集群。如果您查看Beowulf Wikipedia 页面,则可以找到替代方案的链接以及专注于Rocks等集群的 Linux 发行版。

    • 6
  2. lukecyca
    2009-08-18T13:34:42+08:002009-08-18T13:34:42+08:00

    从您的问题来看,您似乎希望所有机器神奇地绑定在一起,以制作一台可以登录并在其上运行程序的大型计算机。这种魔法称为SSI(单一系统映像),有许多集群包可以做到这一点。尝试维基百科页面上列出的任何一个。

    如果你想要一个传统的集群或网格设置,你只需要一个像Torque或Grid Engine这样的作业管理器。 ROCKS是开始使用这种设置的快速方法。

    • 2
  3. Kamil Kisiel
    2009-08-18T13:35:44+08:002009-08-18T13:35:44+08:00

    这个问题的答案是高度应用特定的。3dinfluence 已经提到了 Hadoop 的可能性,如果您的应用程序分解为 Map-Reduce 执行模型,这是非常棒的。

    如果您计划将工作负载分配到多个节点,但仍希望在类似线程的执行模型中只拥有一个应用程序实例,则需要研究某种形式的 MPI。

    MPI 是具有通用接口的标准,但它有多种实现,例如OpenMPI和MPICH。本质上,您将应用程序设计为生成多个副本,这些副本在彼此之间传递消息。MPI 然后抽象出实际的通信方法。相反,它提供了您在应用程序设计中使用的一系列原始功能,例如发送、接收和广播。然后,实际通信由您选择的 MPI 堆栈中的模块处理。

    OpenMPI 包括许多传输,包括共享内存、TCP/IP、InfiniBand、Myrinet Express 等等。您使用哪些以及如何配置它们再次高度依赖于应用程序。

    通常,您的 MPI 任务将使用某种批处理排队系统(例如Torque或Sun Grid Engine )分配到集群上的节点。如果您在多个用户之间共享集群并需要安排集群资源,这些将变得更加有用。

    我建议您查看Gentoo Cluster 项目站点并查看一些链接资源。这些将帮助您更好地了解在集群环境中运行的应用程序,并帮助您缩小需要更多帮助的领域。

    • 2
  4. dmckee --- ex-moderator kitten
    2009-08-18T17:50:10+08:002009-08-18T17:50:10+08:00

    您可以考虑使用像Cluster Knoppix这样的 LiveCD 发行版来测试这个想法。

    • 0

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 从 2003 年迁移到 2008 年 Microsoft 群集技术

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve