在 Amazon ec2 上部署科学的 python 算法



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

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

我的

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

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

谢谢

有趣的项目!

可以通过 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 & Debiansudo 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 堆栈规范。用户可能还想添加 NeuroDebian 存储库来获取额外的 Scipy 软件包。费多拉 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"或"分块文件上传谷歌代码"应该会在可用代码和详细信息方面找到很多选项。

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

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

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

最新更新