我有一个Python科学模型,它调用一些C代码并使用numpy、scipy和许多地理分析模块。我想把它部署在EC2上,但我还不太了解EC2。
在设置从StarCluster AMI派生的AMI之后,我检查了是否可以使用StarCluster包来部署我的堆栈。它们已经有了numpy、scipy和ipython,所以我所要做的就是添加地理模块。
我的计划是编写一个独立的GUI,在客户的机器上运行,并确保他们的输入对我的模型有效。然后,独立GUI将最多10 GB的压缩档案发送到FTP位置。然后他们登录到我在EC2上运行的网页,在那里他们配置运行属性(实例数、模型运行数)。该网页启动一个脚本,该脚本在客户指定的集群大小上执行客户的工作。后处理器处理模型输出,并写入最初受密码保护的结果网页和图形,仅供客户查看。我的模型运行由单独的迭代组成,可能需要5分钟到3小时。
有没有人能为这个模型的理想设置提供任何建议?我想我可以弄清楚其中的科学部分,但我不知道运行web界面的起点是什么……
谢谢
发布于 2013-08-14 19:43:51
有趣的项目!
将模块添加到您在AWS EC2上部署的AMI可以通过pip完成。首先,您需要对实例进行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-scipy python-nose
Ubuntu 12.10和Debian 7.0中的版本符合当前的Scipy堆栈规范。用户可能还想为额外的Scipy包添加NeuroDebian存储库。Fedora sudo yum install numpy scipy python-matplotlib ipython python-pandas sympy python-nas.
Fedora17和更早版本的用户应该使用pip: sudo pip install --upgrade IPython升级ipython (上面的信息可以通过scipy文档:http://www.scipy.org/install.html找到)
至于你的图形用户界面和大文件上传的计划,看看亚马逊网络服务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/
(快速搜索"chunked file uploads github“或"chunked file uploads google code”可以在可用代码和详细信息方面找到很多选项。)
但是,文件上传/传输的一个更简单的方向可能是查看类似以下的解决方案:
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存储桶上的环境配置为允许大文件上传和处理。例如,你的AMIs php版本需要通过php.ini编译和设置来上传特定大小的文件--你也需要注意超时--你可能需要一个64位的AMIs和一个大的EBS来支持这一切。
对于不太复杂的图形用户界面前端组件,jQuery或node.js是很好的起点。在Github或AWS EC2/S3论坛上也有大量的代码包和文档,例如:
https://github.com/josegonzalez/upload
在不了解你的具体需求、计划和时间/预算限制的情况下,这是我能给出的最多建议。但是,请随时回复此帖子或直接与我联系任何其他问题。
https://stackoverflow.com/questions/10236786
复制相似问题