开始使用EC2进行计算密集型(非Web)并行应用程序

时间:2011-10-13 23:55:38

标签: amazon-ec2 machine-learning libsvm

我正在使用LIBSVM进行回归分析。像冠军一样工作。但是,针对模型优化参数的3参数网格搜索最大化了我的2.66 GHz英特尔盒子上的所有四个核心,我仍然需要等待几个小时来生成单个模型。

这似乎是亚马逊EC2的一项工作。

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

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

1 个答案:

答案 0 :(得分:2)

我认为您的任务与Web应用程序的任务不同。你的堆栈当然是不同的,但无论如何 - 原则保持不变。

正如有人对您的问题发表了评论:Elastic Map Reduce可能是您正在寻找的,您可以轻松地将您的工作并行化等等。如果这太有限,您可以查看Cloudera。随support for EC2 as well发布的随时可见的hadoop发布。

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

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

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

    但这取决于你和你的喜好。 (我对你的项目知之甚少。)

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

    自举

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

    群集/网络

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

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

    请告诉我这是否有帮助!