我很少开发用于针对研究问题进行科学模拟的python和fortran代码。由于解决过程是隐式的,因此90%的代码只能作为串行过程执行。通常,在笔记本电脑上运行代码时,我注意到在仿真过程中,它始终占用1个完整CPU内核,占90-100%,每次仿真持续10多个小时。
但是现在由于我需要多次运行相同的代码,因此在笔记本电脑上执行它变得太慢了,并且限制了仿真期间其他活动的顺畅运行。我的代码通常需要较低的内存(<1 GB),但需要较高的计算能力。运行模拟时不需要数据传输。以下是我寻求的两个答案:
在此问题上的任何指导,我将不胜感激。
谢谢!
答案 0 :(得分:1)
这个答案对你来说可能有点晚(2 年半),但如果你仍然感兴趣!
最适合机器的方式取决于您所做的工作需要什么。它可以是成本和速度之间的权衡。例如,如果您运行具有 8 个并发进程的 8 核机器,它会比相同速度的 cpu 核快 8 倍。您还可以跨多个虚拟机运行您的流程。
借助当今的 AWS 实例,您可以在单台机器上一直扩展到最多 36 个内核。但是在您的 AWS 账户中,您可以同时运行数百个内核。因此,开发一种跨机器运行代码的方法将在您需要扩展时为您提供帮助。
在我的公司,我们在 AWS 的 40 台计算机上同时运行数百个 Fortran 程序,并且一直使用现货实例而不是按需实例来降低成本。