首页 文章

Google App Engine MapReduce的速度有多快?

提问于
浏览
0

GAE MapReduce可以获得多少计算密集型增益?我感兴趣的场景是计算密集型,因此例如:在单线程单核应用程序中乘以一万亿随机浮点数 . 然后想象1000个MapReduce工作者每个乘以10亿个随机数,并在所有 Worker 完成时宣布“完成” . 如果重要,则假设已启用结算 . (可能不会) .

Edit: A commenter asked for clarification. Headers 已经修改 . 如果任务需要50000秒单线程,并且在替代实现中使用了1000个MapReduce工作器并且它们在500秒后完成,则性能增益为100倍 . 1000名 Worker :获得100倍,只是略微令人失望,但对于这个例子也是如此 . How can I get finished sooner? Can I ask for 10,000 workers? This question may have to do with limits and quotas. Assume an adequate budget. Does MapReduce's compute-intensive performance gain head to an asymptote and if so what is the performance gain at that asymptote? 评论中还有关于MapReduce适用于面向用户URL生成的大量数据的信息,但是,我的问题与数据存储密集型应用程序's performance versus the same application rewritten for MapReduce. Datastore activity will be minimal in this compute-intensive scenario. I realize there will always be some Datastore activity in any MapReduce application, but since this is a compute-intensive scenario, the Datastore activity and the size of the Datastore entities is not going to be a big influence on the performance gain calculated. The task will use the Datastore for less than 1% of the elapsed time. Nor is the scenario involving a large amount of communication bandwidth (other than the minimum necessary to hit the task queued URLs that MapReduce uses). The question is in regard to comparing a compute-intensive single threaded non-MapReduce task'在MapReduce上相同任务的已用时间之间的时间无关鉴于有多个 Worker ,本质上是多线程的 . 我一般使用"task"这个词,换句话说,"task means work" . 收益可能(但不一定)是 Worker 数量的函数,因此我在示例中提到了1000名 Worker .

1 回答

  • 2

    目前尚不清楚你在这里问什么 . 你在问它效率如何?它有多便宜?它有多快?

    通常,App Engine旨在为面向用户的站点提供服务,并且App Engine mapreduce API可用于协助处理 - 处理面向用户的站点生成的大量数据 . 如果您在App Engine外部托管了大量数据,并且您希望对其进行某种大规模数据处理,那么App Engine可能不适合您 .

    关于性能,您可以期望每个工作人员以连续执行任务的速度执行任务,因此您的每秒项数大致是工作人员数乘以常规速率 - 开销相对较小 . 但是,当不同的工作人员在不同的时间完成时,最终可能会有一些延迟,这取决于作业mapreduce对分片数据的好坏程度 . 对于数据存储区输入,这曾经相当差,但现在好多了 .

    至于你可以拥有多少个 Map 制作器,这取决于很多事情:你的应用程序是否启用了计费,你的应用程序获得了多少其他流量,以及你的映射器任务占用每个元素的时间 . 确定这一点的唯一真正方法是尝试一下 .

相关问题