【问题标题】:getting started with EC2 for compute-intensive (non-web) parallel application开始使用 EC2 进行计算密集型(非 Web)并行应用程序
【发布时间】:2011-12-07 09:16:24
【问题描述】:

我正在使用 LIBSVM 进行回归分析。像冠军一样工作。但是为优化模型参数而进行的 3 参数网格搜索使我的 2.66 GHz Intel 机器上的所有四个内核都达到最大值,而且我仍然需要等待几个小时才能生成单个模型。

这似乎是 Amazon EC2 的工作。

我已经看过很多关于使用 EC2 执行 Web 相关任务的教程和介绍性材料。

但是,如果您有一个小型计算密集型自定义 ANSI-C 程序并希望在 EC2 上运行多个实例,该怎么办?任何人都可以提供有关如何做到这一点的指针(甚至只是要搜索的流行语)吗?

【问题讨论】:

    标签: amazon-ec2 machine-learning libsvm


    【解决方案1】:

    我认为您的任务与 Web 应用程序的任务并没有太大的不同。你的堆栈当然是不同的,但无论如何——原则是一样的。

    正如有人评论您的问题:Elastic Map Reduce 可能是您正在寻找的,可以轻松地并行化您的工作等。如果这太有限,您可以查看Cloudera。带有 support for EC2 as well 的准备就绪的 hadoop 发行版。

    如果您不喜欢 map-reduce,那么您需要设置自己的实例。粗略来说,关键点如下:

    1. 您想找到一种启动 EC2 实例的方法。
    2. 您想找到一种方法来引导和配置它们。
    3. 集群/网络?

    启动 EC2 实例

    如果您不需要自动缩放或自定义界面等功能,AWS 控制台可以做得非常好。您必须选择适合您项目的 AMI(亚马逊系统映像)。我可能会研究official AMI 或基于 Ubuntu 的东西(如果我没记错的话,Ubuntu 是 EC2 上最常用的 Linux)。

    但这取决于您和您的喜好。 (而且我对你的项目了解不够。)

    找到适合您的设置后,克隆您的工作的最简单方法是设置您自己的 AMI 并使用它启动实例等。

    引导

    引导可以使用 EC2 调用的 user-script。它允许您将 shell 脚本传递给实例,该实例将执行 calls 以设置您的堆栈等。我不确定在这种情况下需要什么等。所以如果您发表评论或扩展您的答案,我可以在这里详细说明。

    集群/网络

    这是一个疯狂的猜测,因为我不确定您的代码是做什么的,或者它是如何工作的,等等。如果没有必要,我可能会先使用单个实例来扩展它。您可以使用 EC2 轻松配置大量内核和 RAM。如果您的工作需要更多 RAM 或 CPU,请查看 high-cpu and high-memory instance types

    您可以从t1.micro 开始,您目前可以使用get for free even 并从那里开始。

    如果这有帮助,请告诉我!

    【讨论】:

    • 感谢您的明确答复。亚马逊标准 AMI 可以很好地为我完成这项工作。我仍然需要了解引导的一些细节,但您的回答对我有很大帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2016-10-11
    • 1970-01-01
    • 2015-11-22
    • 2011-05-04
    相关资源
    最近更新 更多