当前位置: 首页 > 知识库问答 >
问题:

分布式 - 如何充分利用多个计算机资源?

姚飞昂
2023-09-28

有多台笔记本电脑,手机,如何统合这些计算资源?
比如我在一台电脑上安装QQ这个软件 另一台电脑上不需要再安装这个软件 也可以使用QQ这个程序也就是说同样的资源是需要在一台电脑上即可 (我尝试过网络存储,但是效果不太好,首先太慢了,其次需要把每台电脑灯配置成服务器)
另外一个要求 对于一个计算任务把它分配给不同电脑上的CPU进行计算

顺便问一下企业是如何实现多个CPU资源充分利用

共有4个答案

卫景明
2023-09-28

一般的企业,没有特殊需求的话,应该不会去整合计算资源,做这个事情本身也是需要投入的。

平常能见到的应用,应该就是:云桌面。有些企业,或者学校可能会用这种方案。
每个用户分配一个”瘦终端“,实际使用的计算资源是来自祝服务器,这一定程度上算是充分利用了服务器资源。

还有就是云计算厂商在做这种事情,所以有了 云服务器、sericeless、函数计算这种类型的服务。可能他们内部使用了类似kubernetes这样的架构,通过调度任务到空闲节点,来提高单个节点的资源利用率。

钱瑞
2023-09-28

上边的例子好像只是涉及到了文件资源共享, 无盘启动是个办法, 现在的无盘启动只要硬件水平够好, 已经是无感的了. 如果是计算资源, 一个计算任务把它分配给不同电脑上的CPU进行计算这种情况, 得在任务分配调度上下点功夫了, 现在很多边缘计算的例子和论文可以参考, 把计算资源分块, 然后再分配下去, 但是这种情况仅限资源比较容易分块.
以上观点未经查证, 仅为个人观点

刚刚查到的一段话:
通常,这种设计的集群是用来开发并行编程应用程序,以解决复杂的科学问题。并行计算(或称平行计算)是相对于串行计算来说的,并行计算能力的目的是用来提高计算速度。它实际是一个计算机集群,其处理能力与真的超级计算机相等。

我听过的一些情景中多机集群,的确都是解决一些科学问题, 日常的一些单一业务多机处理没有涉及到过了

沈长恨
2023-09-28

要充分利用多个计算机资源,可以采取以下几种方法:

并行计算:通过将任务分解为多个子任务,并在多个计算机上同时运行这些子任务,从而加速计算过程。可以使用并行编程模型(如MPI、OpenMP等)或分布式计算框架(如Hadoop、Spark等)来实现并行计算。

负载均衡:将任务动态地分配给不同的计算机,以确保每台计算机的负载均衡。可以使用负载均衡算法来决定任务如何分配,以避免某些计算机过载而导致资源浪费。

容器化技术:使用容器化技术(如Docker、Kubernetes等)可以将应用程序和其依赖项打包成独立的容器,使其能够在不同的计算机上运行。这样可以更灵活地利用计算机资源,根据需要动态地调整容器的数量和位置。

分布式存储和数据管理:如果涉及大量数据处理,可以考虑使用分布式存储系统(如HDFS、Ceph等)和数据管理工具(如Hive、HBase等),将数据分布在多个计算机上进行存储和管理,以提高数据访问和处理的效率。

任务调度和资源管理:使用任务调度和资源管理工具(如Apache Mesos、Slurm等)可以更好地管理多个计算机资源,根据任务的需求和计算机的可用性,自动地分配和管理计算资源。

通过以上方法,可以最大限度地利用多个计算机资源,提高计算效率和资源利用率。

司寇嘉茂
2023-09-28

企业通常会使用一些专门的软件或技术来充分利用多个计算机资源,包括多台笔记本电脑、手机等设备。以下是一些可能的方法:

  1. 分布式计算:这是一种将大任务分解为小块,并在多台计算机上并行处理的技术。一个常见的分布式计算框架是Hadoop,它允许你在多台机器上分配和并行处理大量数据。类似的还有Apache Spark,它提供了一种在分布式环境中处理数据的强大方式。
  2. 并行编程模型:这种模型允许你在多台计算机上同时执行代码,以加快计算速度。例如,OpenMP和MPI是两种常见的并行编程模型,适用于C/C++等语言。
  3. 集群计算:集群是一组紧密连接的计算机,作为一个整体来提供计算能力。通过集群,你可以将多个计算机连接在一起,以提供更强大的计算能力。
  4. 网格计算:这是一种更为分散的计算方式,它将任务分配给由许多不同计算机组成的网格。与集群不同,网格中的计算机可能位于不同的地理位置,并通过网络连接。

对于你的具体需求,例如在不同电脑上使用相同的软件资源,一种可能的解决方案是使用网络启动或者叫网络引导(Network Booting)。这种方式可以让一台电脑通过网络启动并获得所需的软件资源,这样就不需要在每台电脑上都安装相同的软件。具体的实现方式可能需要一些专业知识,但有很多现成的工具和解决方案可以帮助你实现这个目标。

另外,对于需要把一个计算任务分配给不同电脑上的CPU进行计算的需求,你可以考虑使用上述的分布式计算、并行编程模型、集群计算或网格计算等方法。具体使用哪种方法取决于你的具体需求和环境。

最后,你提到的网络存储可能并不是一个好的解决方案,因为其速度可能较慢,而且每台电脑都需要进行配置。然而,如果你有大量的数据需要共享,那么网络存储可能是一个可行的选项。你可以考虑使用专业的存储设备或者云服务来提供这种功能。

 类似资料:
  • 本章将重点介绍如何开始使用分布式TensorFlow。目的是帮助开发人员了解重复出现的基本分布式TF概念,例如TF服务器。我们将使用Jupyter Notebook来评估分布式TensorFlow。使用TensorFlow实现分布式计算如下所述 - 第1步 - 为分布式计算导入必需的模块 - 第2步 - 使用一个节点创建TensorFlow集群。让这个节点负责一个名称为“worker”的作业,并在

  • 在介绍GraphX之前,我们需要先了解分布式图计算框架。简言之,分布式图框架就是将大型图的各种操作封装成接口,让分布式存储、并行计算等复杂问题对上层透明,从而使工程师将焦点放在图相关的模型设计和使用上,而不用关心底层的实现细节。 分布式图框架的实现需要考虑两个问题,第一是怎样切分图以更好的计算和保存;第二是采用什么图计算模型。下面分别介绍这两个问题。 1 图切分方式 图的切分总体上说有点切分和边切

  • 主要内容:一、从一个新闻门户网站案例引入,二、推算一下你需要分析多少条数据?,三、黄金搭档:分布式存储+分布式计算这篇文章聊一个话题:什么是分布式计算系统? 一、从一个新闻门户网站案例引入 现在很多同学经常会看到一些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。 但是有些经验尚浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做一个科普类的分析。 如果你要理解啥是分布式计算,就必须先得理解啥是分布式存储,现在我们从一个小例子来引入。 比如说

  • 一、MapReduce概述 Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序。编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集。 MapReduce 作业通过将输入的数据集拆分为独立的块,这些块由 map 以并行的方式处理,框架对 map 的输出进行排序,然后输入到 reduce 中。MapReduce 框架专门用于 <key,value> 键值

  • 类型 实现框架 应用场景 批处理 MapReduce 微批处理 Spark Streaming 实时流计算 Storm

  • 其于职业介绍所、工头、工人、工作模型的分布式计算框架。 职业介绍所有两种,一种是本地职业介绍所,一种是远程职业介绍所。顾名思义,本地职业介绍所就是在当前计算机上的,远程职业介绍所用于连接到远程职业介绍所的。 工人、工头都可以加入到职业介绍所,所以加到本地或远程种业介绍所都是可以的。 在同一个职业介绍所中,具有同样类型的工人、工头和工作都存在的时候,工作就可以被安排下去执行。当然,有两种安排方式,一