5

我有一个 Python 科学模型,它调用一些 C 代码并使用 numpy、scipy 和许多地理分析模块。我想在 EC2 上部署它,但我对 EC2 还不太了解。

在设置派生自 StarCluster AMI 的 AMI 后,我已检查是否可以使用 StarCluster 包来部署我的堆栈。这些已经有 numpy 和 scipy 和 ipython,所以我所要做的就是添加地理模块。

我的计划是编写一个在客户机器上运行的独立 GUI,并确保他们的输入对我的模型有效。然后,独立 GUI 将最多约 10 GB 的压缩档案发送到 FTP 位置。然后他们登录到我在 EC2 上运行的网页,他们在其中配置运行属性(实例数、模型运行数)。该网页启动一个脚本,该脚本在客户指定的集群上完成客户的工作。后处理器处理模型输出并写入最初受密码保护的结果网页和图表,仅供客户查看。我的模型运行由单个迭代组成,可能需要 5 分钟到 3 小时。

任何人都可以为这个模型的理想设置提供任何建议吗?我想我可以弄清楚它的科学部分,但我不明白运行 Web 界面的起点是什么......

谢谢

4

1 回答 1

2

有趣的项目!

可以通过 pip 将模块添加到您在 AWS EC2 上部署的 AMI。首先,您需要通过 SSH 访问您的实例。这方面的文档在这里: http ://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html 然后,如果您还没有安装它,您可以安装 pip 和您的其他软件包和模块,如下所示:

sudo apt-get install -y python-pip
sudo pip install numpy (already installed so no need for this)
sudo pip install scipy (same as above)

Ubuntu & Debian sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

Ubuntu 12.10 和 Debian 7.0 中的版本符合当前的 Scipy 堆栈规范。用户可能还想为额外的 Scipy 包添加 NeuroDebian 存储库。Fedora sudo yum install numpy scipy python-matplotlib ipython python-pandas sympy python-nose

Fedora 17 和更早版本的用户应该使用 pip 升级 IPython:sudo pip install --upgrade ipython(上面的信息通过 scipy 文档找到:http ://www.scipy.org/install.html )

至于您的 GUI 和大文件上传计划,请查看 AWS S3(尽管这有一些限制)以进行文件存储,根据您希望将解决方案推送到多远,您可以使用分块文件上传或流式传输类似于这些文件传输解决方案的多部分请求:

https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads
https://devcenter.heroku.com/articles/paperclip-s3
https://github.com/heiflo/play21-file-upload-streaming
https://github.com/netty/netty/issues/845
https://github.com/playframework/playframework/pull/884
https://github.com/floatingfrisbee/amazonfileupload
http://blog.assimov.net/blog/2011/04/03/multi-file-upload-with-uploadify-and--carrierwave-on-rails-3/

(快速搜索“分块文件上传 github”或“分块文件上传 google 代码”应该会在可用代码和详细信息方面出现很多选项。)

但是,文件上传/传输的更简单方向可能是查看以下解决方案:

http://www.bucketexplorer.com/be-download.html
https://forums.aws.amazon.com/thread.jspa?messageID=258228&tstart=0
https://forums.aws.amazon.com/thread.jspa?messageID=257781&tstart=0
http://www.jfileupload.com/products/js3upload/index.html
http://codeonaboat.wordpress.com/2011/04/22/uploading-a-file-to-amazon-s3-using-an-asp-net-mvc-application-directly-from-the-users-browser/

无论如何,您都需要确保您的 EC2 实例和/或 S3 存储桶上的环境配置为允许大文件上传和处理。例如,您的 AMI php 版本需要通过 php.ini 编译和设置以上传特定大小的文件 - 您还需要注意超时 - 您可能需要 64 位 AMI 和大型 EBS为这一切提供动力。

至于不太复杂的 GUI 前端组件,jQuery 或 node.js 是很好的起点。Github 或 AWS EC2/S3 论坛上也有大量代码包和文档,例如:

https://github.com/josegonzalez/upload

在不了解您的具体要求、计划和时间/预算限制的情况下,这是我能给出的最多建议。但是,请随时回复此线程或直接向我发送任何其他问题。

于 2013-08-14T11:43:51.190 回答