我有一个可高度并行化的计算密集型项目:基本上,我有一个函数需要在大表 (Postgresql) 中的每个观察值上运行。该函数本身是一个存储的 Python 过程。
Amazon EC2 似乎非常适合该项目。
我的问题是:我应该制作一个已经包含数据库的自定义镜像 (AMI) 吗?这似乎具有最小化数据传输和简化并行化的优势:每个图像都可以获得一些分配的索引 block 来计算,例如,图像 1 得到 1:100,图像 2 101:200 等。拆分数据和实例(大多数操作指南都建议)似乎对我的应用程序没有意义,但我对此很陌生,所以我不确定我的直觉是正确的。
最佳答案
您肯定希望将数据和服务器实例分开,以便在您完成实例后持久保存数据中的更改。您最好的选择是从一个包含您要使用的操作系统和数据库平台的基本镜像开始,根据您的需要对其进行自定义,然后挂载一个或多个包含您的数据的 EBS 卷。完成自定义后,您可能还想创建自己的服务器实例,除非您正在做的事情相当简单。
一些有用的链接:
http://docs.amazonwebservices.com/AmazonEC2/gsg/2006-10-01/creating-an-image.html http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=100&externalID=1663
(你说的是 postgres,但这个 mysql 教程涵盖了你需要记住的相同基本概念)
关于python - 我应该如何配置 Amazon EC2 来执行可并行化的数据密集型计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481285/