2012-04-19 38 views
5

Tôi có một mô hình khoa học Python gọi một số mã C và sử dụng các mô đun phân tích địa lý, scipy và nhiều địa lý. Tôi muốn triển khai nó trên EC2 nhưng tôi chưa biết nhiều về EC2.Triển khai thuật toán python khoa học trên Amazon ec2

Tôi đã kiểm tra xem tôi có thể sử dụng gói StarCluster để triển khai ngăn xếp của mình sau khi thiết lập AMI có nguồn gốc từ StarCluster AMIs hay không. Những cái này đã có phần mềm và scipy và ipython, vì vậy tất cả những gì tôi phải làm là thêm các module địa lý.

Kế hoạch của tôi là viết một GUI độc lập chạy trên máy của khách hàng và đảm bảo đầu vào của chúng hợp lệ cho mô hình của tôi. Sau đó, GUI độc lập gửi lên tới 10 GB lưu trữ nén đến một vị trí FTP. Sau đó, họ đăng nhập vào trang web của tôi, tôi chạy trên EC2, nơi họ cấu hình các thuộc tính chạy (số phiên bản, số lần chạy mô hình). Trang web đó bắt đầu một tập lệnh thực hiện công việc của khách hàng trên cụm kích thước mà họ đã chỉ định. Bộ xử lý bài viết xử lý đầu ra của mô hình và viết các trang web và đồ thị kết quả ban đầu được bảo vệ bằng mật khẩu chỉ cho khách hàng xem. Mô hình của tôi chạy bao gồm các lần lặp riêng lẻ có thể mất 5 phút đến 3 giờ.

Có ai có thể đưa ra bất kỳ lời khuyên nào để thiết lập lý tưởng với mô hình này không? Tôi nghĩ rằng tôi có thể tìm ra một phần khoa học của nó, nhưng tôi không nhìn thấy những gì mà điểm khởi đầu là để chạy giao diện web ...

Cảm ơn

+0

Wow, đó là một câu hỏi khá! Tôi nghĩ sẽ rất khó để cung cấp cho bạn một câu trả lời đơn giản và ngắn gọn bao trùm tất cả các khía cạnh của hệ thống đã được lên kế hoạch mà bạn đề cập, vì vậy có lẽ bạn có thể đăng một số câu hỏi nhỏ hơn, cụ thể hơn về các thành phần riêng lẻ? – ThePhysicist

Trả lời

2

dự án Thú vị!

Việc thêm mô-đun vào AMI mà bạn triển khai trên AWS EC2 có thể được thực hiện thông qua pip. Trước tiên, bạn sẽ cần quyền truy cập SSH vào cá thể của bạn. Tài liệu về vấn đề này là ở đây: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html Sau đó, nếu bạn không có nó được cài đặt đã có, bạn có thể cài đặt pip & gói bổ sung của bạn & module như sau:

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-máy tính xách tay python-pandas python-sympy python-mũi

Các phiên bản trong Ubuntu 12.10 và Debian 7.0 đáp ứng đặc tả ngăn xếp Scipy hiện tại. Người dùng cũng có thể muốn thêm kho lưu trữ NeuroDebian cho các gói Scipy bổ sung. Fedora sudo yum install NumPy scipy python-matplotlib ipython python-gấu trúc python-mũi

Người sử dụng Fedora 17 và sympy trước đó thì nên nâng cấp IPython sử dụng pip: sudo pip cài đặt --upgrade ipython (thông tin trên tìm thấy qua tài liệu scipy: http://www.scipy.org/install.html)

đối với kế hoạch của bạn cho GUI & upload file lớn, hãy nhìn vào AWS S3 (mặc dù điều này có một số hạn chế) để lưu trữ tập tin & tùy thuộc vào cách xa bạn muốn đẩy giải pháp của bạn, bạn có thể sử dụng tải lên tệp chunked hoặc truyền tải một yêu cầu nhiều phần tương tự như các giải pháp này cho tệp tin tran sfers:

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/ 

(một tìm kiếm nhanh cho "chunked tập tin tải lên github" hay "chửi rủa đang tập tin tải lên google" nên bật lên nhiều lựa chọn về sẵn đang & thông tin chi tiết.)

Tuy nhiên, một hướng dễ dàng hơn cho các tập tin tải lên/chuyển giao có thể nhìn vào các giải pháp như thế này:

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/ 

Bất kể, bạn sẽ muốn chắc chắn môi trường của bạn trên EC2 của bạn &/hoặc các thùng S3 của bạn được định cấu hình để cho phép tải lên tệp lớn, xử lý &. Ví dụ, phiên bản AMIs php của bạn cần được biên dịch & thiết lập qua php.ini để tải lên các tệp có kích thước nhất định - cũng có thời gian chờ bạn cần phải biết - và bạn có thể cần AMI 64 bit cùng với EBS lớn để cấp năng lượng cho tất cả điều này.

Đối với các thành phần phức tạp, mặt trước của GUI, jQuery hoặc node.js là điểm bắt đầu tốt. Ngoài ra còn có tấn của các gói đang & tài liệu trên Github hoặc trong các diễn đàn AWS EC2/S3 như sau:

https://github.com/josegonzalez/upload 

Mà không biết yêu cầu cụ thể của bạn, kế hoạch & giới hạn thời gian/ngân sách, đó là những lời khuyên nhất mà tôi có thể đưa cho. Tuy nhiên, vui lòng trả lời chủ đề này hoặc gửi cho tôi trực tiếp bất kỳ câu hỏi nào khác.

Các vấn đề liên quan