2010-08-12 42 views
9

Tôi là một sinh viên ngành khoa học máy tính hiện đang học năm cuối. Là dự án năm cuối cùng của tôi, tôi đang nghĩ đến việc tạo ra một môi trường tính toán số như MATLAB như SAAS hỗ trợ thao tác ma trận, vẽ các chức năng và dữ liệu, hoạt động xử lý hình ảnh, vv Dự án sẽ được tạo trong Java + Scala. Scala sẽ được sử dụng cho DSL của ứng dụng. Phần còn lại của ứng dụng sẽ được lập trình bằng Java.Môi trường tính toán số trên đám mây? [Undergrad Project]

Tôi đã nghĩ đến việc triển khai hệ thống này trên công cụ ứng dụng của Google để chúng tôi có thể song song các thuật toán khác nhau trên một số máy chủ và do đó có được kết quả nhanh hơn. Tuy nhiên, tôi không có bất kỳ kinh nghiệm nào trước đây về phát triển web (ngoại trừ một số trang đơn giản trong PHP).

Vì vậy, tôi có câu hỏi quan trọng sau đây:

  1. Trước hết nó làm cho tinh thần để có một ứng dụng như matlab lưu trữ trên đám mây?
  2. Việc viết một ứng dụng như vậy trên công cụ ứng dụng của Google dễ dàng hay khó khăn như thế nào, xem xét kinh nghiệm hạn chế của tôi về phát triển web?
  3. Bạn có thể vui lòng chỉ cho tôi một số dự án đã tồn tại song song với thuật toán toán học, đồ thị và xử lý hình ảnh.

Tôi biết câu hỏi này rất chủ quan nhưng tôi vẫn yêu cầu bạn không đóng nó vì tôi rất bối rối về dự án của mình và cần một số lời khuyên của chuyên gia.

Bất kỳ loại gan nào sẽ được đánh giá cao!

Cảm ơn!

+0

Tôi đã xóa thẻ đại học-dự án, vì điều đó dường như phù hợp với khái niệm "thẻ meta", đã bị trục xuất khỏi tràn ngăn xếp & cia. –

Trả lời

2

Tại sao không thử hệ thống tính toán phân phối của BOINC?

http://boinc.berkeley.edu/

Nó cho phép nhiều nền tảng, nhiều môi trường và dịch vụ lưu trữ tất cả các loại công việc tính toán số học tùy thuộc vào môi trường song song.

Hơn nữa, bạn không cần bất kỳ kiến ​​thức phát triển web nào. Bạn chỉ cần tạo một dự án mới trong BOINC và thử chạy nó trong môi trường điện toán tình nguyện hiện tại.

+1

BOINC, theo hiểu biết tốt nhất của tôi, được nhắm mục tiêu vào các công việc hàng loạt lớn, nhưng OP đang hỏi về cách sử dụng tương tác hoặc gần tương tác. –

2

Bạn có thể gặp sự cố với loại dịch vụ này trên GAE vì nó khá hạn chế đối với những gì bạn được phép thực hiện trong hộp cát. Từ GAE Docs

ứng dụng động cơ ứng dụng có thể không:

  • spawn một tiểu trình hoặc chuỗi. Yêu cầu về số điện thoại trên web phải là được xử lý trong một quá trình trong vòng vài giây. Các quá trình mất thời gian rất dài để phản hồi là bị chấm dứt để tránh quá tải máy chủ web .

Điều này có thể gây khó khăn khi cung cấp các loại dịch vụ bạn mô tả.Việc mở rộng quy mô mà GAE cung cấp cho phép bạn tăng số lượng yêu cầu mà bạn có thể xử lý nhưng không thực sự cung cấp cho bạn các công cụ tốt để mở rộng tài nguyên CPU cho một yêu cầu duy nhất.

Nghe có vẻ như một ý tưởng thú vị cho một dự án, chúc may mắn.

4

Khoảng nửa năm trước, tôi đã nghĩ đến việc tạo ra những thứ như vậy.

Suy nghĩ đã kết thúc với không có gì ngoại trừ một số mã tại http://code.google.com/p/metaplasm ...

Trong thực tế, điều khôn lanh với GAE là tính toán phải được cắt thành ba mươi secods lát không có bộ nhớ chia sẻ (chỉ memcache và cơ sở dữ liệu). Sau khi bạn hoàn thành, mọi thứ khác sẽ diễn ra suôn sẻ :-)

4

Máy ứng dụng có thể không phải là nền tảng phù hợp cho việc này. App Engine được nhắm mục tiêu vào các ứng dụng web mà mỗi yêu cầu thực hiện một số lượng tính toán khiêm tốn, nhưng bạn cần phải phục vụ trong số đó - hầu hết các ứng dụng web truyền thống, chẳng hạn như trang web mạng xã hội, blog, trò chơi dựa trên web, v.v. v.v. Nó không được nhắm vào các dịch vụ cần tính toán chuyên sâu cho một yêu cầu người dùng và trong khi nó có các dịch vụ để xử lý nền song song, chúng không đồng bộ, có lẽ cũng không phải là thứ bạn muốn cho trường hợp sử dụng của bạn.

Tôi khuyên bạn nên xem xét các môi trường đám mây khác, chẳng hạn như EC2 của Amazon, cho sức mạnh xử lý và tính song song mà bạn cần. App Engine vẫn sẽ làm một công việc đáng ngưỡng mộ như một lối vào cho một dịch vụ như vậy, mặc dù! Ví dụ: bạn có thể sử dụng ứng dụng App Engine để quản lý công việc, gửi chúng tới các chương trình phụ trợ và bật lên và xuống các phiên bản VM theo yêu cầu của tải.

3

Điều này hoàn toàn có ý nghĩa và có hai dự án hiện có chạy các quy trình số trong đám mây.

Biocep (miễn phí, chạy R & Scilab trên EC2 hoặc Eucalyptus) và Monkey Analytics (thương mại, chạy R, Octave hoặc Python trên EC2).

+0

Cụm sao là một http://web.mit.edu/stardev/cluster/ khác (bao gồm Python + NumPy/SciPy optmized cho các công cụ quản lý EC2 +) – robince

1

Tôi cảm thấy rất ít khi viết phần còn lại trong Java. Đó chính xác là nơi tôi nghĩ Scala sẽ tạo ra sự khác biệt nhất.

+0

Tại sao? Ưu và nhược điểm là gì? – Mikhail

0

Tôi đang lưu trữ Java math online demo trên Google appengine của mình. Bản trình diễn không song song này truy cập giới hạn hạn ngạch của Google Appengine cho các yêu cầu tốn thời gian.

Nhưng với sự trợ giúp của appengine-mapreduce library, bạn có thể song song hóa các thuật toán toán học của mình và tránh các giới hạn này.

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