使用Amazon EC2运行多个Python / FORTRAN代码进行科学计算

时间:2018-12-09 18:35:12

标签: python amazon-web-services amazon-ec2 fortran scientific-computing

我很少开发用于针对研究问题进行科学模拟的python和fortran代码。由于解决过程是隐式的,因此90%的代码只能作为串行过程执行。通常,在笔记本电脑上运行代码时,我注意到在仿真过程中,它始终占用1个完整CPU内核,占90-100%,每次仿真持续10多个小时。

但是现在由于我需要多次运行相同的代码,因此在笔记本电脑上执行它变得太慢了,并且限制了仿真期间其他活动的顺畅运行。我的代码通常需要较低的内存(<1 GB),但需要较高的计算能力。运行模拟时不需要数据传输。以下是我寻求的两个答案:

  1. Amazon Web Service(AWS)中哪种 ec2 实例类型最合适?
  2. 建议在8台vCPU机器上运行7个单独的代码,或者在2台vCPU多台机器上运行7个代码。我发现在AWS中为后者定价很经济。另外,由于我的代码要求高CPU速率,所以我注意到较低的内核似乎可以提供更高的CPU速度。

在此问题上的任何指导,我将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

这个答案对你来说可能有点晚(2 年半),但如果你仍然感兴趣!

最适合机器的方式取决于您所做的工作需要什么。它可以是成本和速度之间的权衡。例如,如果您运行具有 8 个并发进程的 8 核机器,它会比相同速度的 cpu 核快 8 倍。您还可以跨多个虚拟机运行您的流程。

借助当今的 AWS 实例,您可以在单台机器上一直扩展到最多 36 个内核。但是在您的 AWS 账户中,您可以同时运行数百个内核。因此,开发一种跨机器运行代码的方法将在您需要扩展时为您提供帮助。

在我的公司,我们在 AWS 的 40 台计算机上同时运行数百个 Fortran 程序,并且一直使用现货实例而不是按需实例来降低成本。