Algorithm 如何创建一个包含1500台服务器的系统,以即时交付结果?

Algorithm 如何创建一个包含1500台服务器的系统,以即时交付结果?,algorithm,deployment,parallel-processing,cloud,Algorithm,Deployment,Parallel Processing,Cloud,我想创建一个在100ms内提供用户界面响应的系统,但需要几分钟的计算。幸运的是,我可以将它分成非常小的部分,这样我就可以将它分发到很多服务器,比如说1500台服务器。查询将被传递到其中一个服务器,然后重新分发到10-100个其他服务器,然后再重新分发,等等。在计算之后,结果再次传播回来,并由单个服务器返回。换句话说,类似于谷歌搜索的东西 问题是,我应该使用什么技术?云计算听起来很明显,但1500台服务器需要通过提供特定于任务的数据来为其任务做好准备。这可以使用任何现有的云计算平台来实现吗?或者我

我想创建一个在100ms内提供用户界面响应的系统,但需要几分钟的计算。幸运的是,我可以将它分成非常小的部分,这样我就可以将它分发到很多服务器,比如说1500台服务器。查询将被传递到其中一个服务器,然后重新分发到10-100个其他服务器,然后再重新分发,等等。在计算之后,结果再次传播回来,并由单个服务器返回。换句话说,类似于谷歌搜索的东西

问题是,我应该使用什么技术?云计算听起来很明显,但1500台服务器需要通过提供特定于任务的数据来为其任务做好准备。这可以使用任何现有的云计算平台来实现吗?或者我应该创建1500个不同的云计算应用程序并将它们全部上传

编辑:专用物理服务器没有意义,因为平均负载将非常非常小。因此,我们自己运行服务器也是没有意义的——它需要是外部提供者的某种共享服务器

Edit2:我基本上想总共购买30个CPU分钟,我愿意在上面花费3000美元,相当于每天144000美元。唯一的标准是,这30分钟的CPU时间分布在1500台响应迅速的服务器上

Edit3:我希望解决方案类似于“使用谷歌应用程序,创建1500个应用程序并部署它们”或“联系XYZ并编写一个asp.net脚本,他们的服务可以部署,你根据你使用的CPU时间量向他们支付费用”之类的东西

Edit4:一家低端Web服务提供商,以每月1美元的价格提供asp.net实际上可以解决这个问题(!)-我可以创建1500个帐户,延迟正常(我检查过),一切都正常-除了我需要1500个帐户在不同的服务器上,我不知道有哪家提供商有足够的服务器可以在不同的服务器上分发我的帐户。我完全知道,不同服务器的延迟会有所不同,有些可能不可靠,但这可以通过在不同的服务器上重试在软件中解决


Edit5:我刚刚试过,并将一家低端Web服务提供商的基准价定为每月1美元。如果预先加载,他们可以在15毫秒内完成节点计算并将结果发送到我的笔记本电脑。预加载可以通过在需要实际性能之前不久发出请求来完成。如果某个节点在15毫秒内没有响应,则该节点的任务部分可以分发到多个其他服务器,其中一个服务器最有可能在15毫秒内响应。不幸的是,他们没有1500台服务器,这就是我在这里提问的原因。

听起来你需要使用这样的算法


谷歌通过拥有一个庞大的小型Linux服务器群,并将其网络化来实现这一目标。他们使用了一种Linux风格,他们已经为自己的搜索算法进行了定制修改。成本是软件开发和廉价PC。

[提前向集团道歉,因为他们将部分响应空间用于类似元的事务]

从OP,Lars D:
我不认为这个答案是对这个问题的回答,因为它并不能使我更接近于解决方案。我知道云计算是什么,我知道如果需要,该算法可以完美地拆分为30多万台服务器,尽管由于网络延迟,额外的成本不会带来太多额外的性能

拉尔斯,
我真诚地道歉,因为我以一种幼稚和一般的方式阅读并回答了你的问题。我希望你们能看到,问题本身缺乏明确性,特别是其原始形式,以及问题(1)有些不寻常的性质,将促使我以同样的方式回答这个问题。这一点,以及这样的问题通常来自于对这个过程几乎没有思考和研究的人们的假设,是我相信我(大规模分布式系统的)非实践者可以帮助你的借口。许多类似的回答(其中一些得益于您提供的额外见解)以及向您提出的许多评论和其他问题表明,我并非唯一一个有这种心态的人

(1) 非实际问题:一个[显然]以计算为主的过程(不提分布式/复制存储结构),高度并行(1500台服务器),分成50毫秒大小的任务,这些任务共同提供亚秒响应(?供人类使用?)。然而,这一过程[每天]只需要几次

别再回头看了
在<强>实用术语< /强>中,您可以考虑以下一些“强”来帮助改进这个问题<或强>(或将其移到其他/交替的问题),从而从<>强>领域的专家

中得到帮助。
  • 作为一个独特的(更具体的)问题重新发布。事实上,可能有几个问题:例如mapreduce进程的[可能]延迟和/或开销差,当前价格(特定TOS和卷详细信息),不同供应商的分布式进程的机架感知等
  • 改名
  • 添加您手头上的流程的详细信息(请参阅问题和许多回答的注释中的许多问题)
  • 在一些问题中,添加特定于特定供应商或技术(EC2、Azure…)的标签,因为这可能会带来这些公司的代理商提供的可能不太不买账但同样有用的评论
  • 表明你明白你的任务有点艰巨
  • 明确说明你希望底层技术的有效实践者做出回应(可能也包括那些对这些技术“沾沾自喜”的人,因为除了物理/高能技术之外