构建或购买计算网格平台更好?

发布于 2024-08-26 21:19:56 字数 415 浏览 7 评论 0原文

我希望对字符串匹配进行一些相当处理器密集型的强力处理。我在多线程环境中运行了我的原型,并将性能与使用 Gridgain 和几个节点(也是多线程)的实现进行了比较。

我观察到的性能是我的 Gridgain 实现比我的多线程实现执行得更慢。我的 gridgain 实现可能存在缺陷,但它只是一个原型,我认为结果具有指示性。所以我的问题是:

当人们可以相当容易地组合一个轻量级计算时,必须学习然后为特定网格平台(hadoop、gridgain 或 EC2,如果托管 - 欢迎其他建议)构建一个实现有什么优势网格平台的学习曲线要​​浅得多?...也就是说,我们可以通过这些云/网格平台免费获得什么值得拥有/实施起来很棘手的东西?

(请注意,我不需要数据网格)

干杯,

-James

(如果需要的话,很高兴制作这个社区维基)

I am looking to do some quite processor-intensive brute force processing for string matching. I have run my prototype in a multi-threaded environment and compared the performance to an implementation using Gridgain with a couple of nodes (also multithreaded).

The performance I observed was that my Gridgain implementation performed slower to my multithreaded implementation. It could be the case that there was a flaw in my gridgain implementation, but it was only a prototype, and I thought the results were indicative. So my question is this:

What are the advantages of having to learn and then build an implementation for a particular grid platform (hadoop, gridgain, or EC2 if going hosted - other suggestions welcome), when one could fairly easily put together a lightweight compute grid platform with a much shallower learning curve?...i.e. what do we get for free with these cloud/grid platforms that are worth having/tricky to implement?

(Please note, I don't have any need for a data grid)

Cheers,

-James

(p.s. Happy to make this community wiki if needbe)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦旅人picnic 2024-09-02 21:19:56

您正在处理什么样的网格?运行相同操作系统的十几台主机将非常简单地运行网格 - 您真正需要处理的是将工作发送到每个主机,也许需要一点负载平衡,也许要考虑如果主机出现故障该怎么办,当您更新服务时,也许需要处理向主机分发新的服务代码,但如果您不处理其中任何一个,那也没什么大不了的,因为网格的大小是可以管理的。如果您正在处理数千台主机,或者处理一个永远不应该停机的服务,或者由于单个主机停机而出现错误,那么您突然需要担心:

  • 不会使任何单个主机
  • 过载分发新的服务代码
  • 检测主机何时停机不响应并且不向其发送新的工作,以及重新发送正在处理的任何内容,
  • 可能在不同的操作系统和架构(小端与大端)上工作
  • 节能 - 在低负载期间关闭主机并在高负载时将其恢复
  • 扩展 - 如果明天向网格添加 100 台主机,需要多长时间才能让它们连接并工作?
  • 可靠性 - 某些服务实际上可能在 2-3 个不同的主机上执行计算,并且只返回所有主机都同意的答案

。这是大多数网格软件在需要时应该为您做的事情的简短列表。如果你正在做一些小事或非关键的事情,那么无论如何,自己动手吧。如果您正在开发的东西必须能够工作,或者足够大,以至于在部署过程中进行任何手动步骤都会成为维护噩梦,那么您可能想要使用已经存在的东西。

What kind of grid are you dealing with? A dozen hosts running the same OS would be pretty straightforward to run a grid for - all you really have to deal with is sending work to each host, maybe a little load balancing, maybe take into account what to do if a host goes down, maybe deal with distributing new service code to the hosts when you update your service, but if you don't deal with any of those it's not a big deal since the grid is a manageable size. If you're dealing with 1000s of hosts, or with a service that should never be down or have errors due to single hosts going down then you suddenly have to worry about:

  • not overloading any single host
  • distributing new service code
  • detecting when a host isn't responding and not sending it new work, as well as resending whatever it was working on
  • possibly working across different OSes and architectures (little vs. big endian)
  • energy savings - shutting down hosts during low load and bringing them back up for high load
  • scaling - if you add 100 hosts to your grid tomorrow how long does it take to get them connected and working?
  • reliability - some services may actually perform calculations on 2-3 different hosts and only return an answer that all the hosts agree on

That's a short list of things that most grid software should do for you if you need it. If you're working on something small or non-critical then by all means, roll your own. If you're working on something that has to work, or is big enough that having any manual steps in a deployment process would be a maintenance nightmare then you probably want to go with something that already exists.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文