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



我使用LIBSVM进行回归分析。像冠军一样工作。但是,为优化模型参数而进行的3参数网格搜索最大限度地利用了我的2.66 GHz英特尔机箱上的所有四个核心,并且我仍然需要等待几个小时才能生成单个模型。

这似乎是Amazon EC2的工作。

我看过很多关于使用EC2完成web相关任务的教程和介绍性材料。

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

我不认为你的任务是太不同于web应用程序。你的堆栈当然是不同的,但无论如何-原则是相同的。

正如有人评论你的问题:Elastic Map Reduce可能是你正在寻找的,可以很容易地并行化你的工作等。如果这太有限,你可以看看Cloudera。一个支持EC2的hadoop发行版。

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

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

启动EC2实例

如果您不需要自动伸缩或自定义接口之类的东西,AWS控制台可以做得非常好。您必须选择适合您的项目的AMI (Amazon Machine Image)。我可能会查看官方的 AMI或基于Ubuntu的东西(如果我没记错的话,Ubuntu是EC2上使用最多的Linux)。

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

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

<标题>引导h1> 导可以使用EC2所称的user-script。它允许您将shell脚本传递给实例,该实例将执行调用来设置堆栈,等等。我不确定在这种情况下需要什么,等等。因此,如果您评论或扩展您的答案,我可以在这里详细说明。 <标题>集群/网络h1> 是一个大胆的猜测,因为我不确定你的代码是做什么的,或者它是如何工作的,等等。如果没有必要,我可能会首先使用单个实例进行扩展。您可以使用EC2轻松地获得大量内核和RAM。根据您的工作是否需要更多的RAM或CPU,查看高CPU和高内存实例类型。

你可以从一个t1.micro开始,你现在甚至可以免费得到它,然后从那里开始。

让我知道这是否有帮助!

最新更新