2010-08-12 61 views
9

我是一名计算机科学本科生,目前在我的最后一年。作为我最后一年的项目,我正在考虑创建一个类似matlab的数值计算环境作为SAAS,它支持矩阵操作,函数和数据绘图,图像处理操作等。项目将在Java + Scala中创建。 Scala将被用于应用程序的DSL。其余的应用程序将用Java编程。云计算环境? [本科项目]

我在考虑在谷歌应用程序引擎上实现这个系统,以便我们可以在多个服务器上并行化各种算法,从而获得更快的结果。不过,我没有任何Web开发经验(除了PHP中的一些简单网站)。

所以我有以下关键问题:

  1. ,首先它是有意义的有这样托管在云MATLAB的应用程序?
  2. 考虑到我在Web开发方面的经验有限,在Google应用程序引擎中编写这样的应用程序有多容易或困难?
  3. 请你指点一下已有的并行数学,图形和图像处理算法的项目。

我知道这个问题是非常主观的,但我仍然要求你们不要关闭它,因为我对我的项目非常困惑,需要一些专家的建议。

任何hep将不胜感激!

谢谢!

+0

我删除了本科生项目标签,因为这似乎符合从“stack overflow&cia”中放逐的“metatag”的概念。 – 2010-08-12 14:35:21

回答

2

为什么不试试BOINC opensource分布式计算系统?

http://boinc.berkeley.edu/

它允许多个平台,多种主机环境和服务都挺依赖于并行环境数值计算工作。

此外,您不需要任何Web开发知识。您需要在BOINC中创建一个新项目,并尝试在现有的志愿计算环境中运行它。

+1

就我所知,BOINC针对的是大批量作业,但OP正在询问关于交互式或接近交互式的用法。 – 2010-08-12 07:41:39

2

您可能会在GAE上遇到这种服务类型的问题,因为它对沙盒允许执行的操作有相当的限制。从GAE Docs

App Engine应用程序无法:

  • 产卵一个子进程或线程。网络 请求应用程序必须是 在几秒钟内在单个进程中处理。需要很长时间才能响应的进程是 已终止,以避免重载 Web服务器。

这可能会让您很难提供您描述的服务类型。GAE提供的扩展能够让您增加可以处理的请求数量,但并不能真正为单个请求扩展CPU资源提供了很好的工具。

听起来像一个项目有趣的想法,但祝你好运。

4

大约半年前,我已经想过做这样的事情。

思考最终什么也没有,除了一些代码在http://code.google.com/p/metaplasm ...

事实上,GAE的棘手的事情是计算必须被切为三十secods没有共享内存(仅内存缓存和数据库)切片。完成之后,其他一切都会顺利进行:-)

4

App引擎可能不是适合此平台的平台。 App Engine针对的是Web应用程序,每个请求的计算量都很小,但您需要为其提供服务批次 - 大多数传统的Web应用程序,例如社交网站,博客,基于Web的游戏等等。等等。它不针对那些需要为单个用户请求进行密集计算的服务,虽然它有服务来执行并行后台处理,但它们是异步的,这可能不是您想要的用例。

我想推荐的是看看其他云环境,例如亚马逊的EC2,以获得您所需的处理能力和并行性。不过,App Engine仍然会做一个令人钦佩的工作,作为这种服务的前端。例如,您可以使用App Engine应用程序来管理作业,将它们分派到后端,并根据加载的需要启动和关闭VM实例。

3

这绝对有意义,并且有两个现有项目在云中运行数字例程。 (EC2或Eucalyptus上的Scilab)和Monkey Analytics(商业的,在EC2上运行R,Octave或Python)。

+0

Star Cluster是另一个http://web.mit.edu/stardev/cluster/(包括适用于EC2 +管理工具的Python + NumPy/SciPy) – robince 2010-08-13 11:49:46

1

对于我来说用Java编写其余部分是没有意义的。这正是我认为Scala会发挥最大作用的地方。

+0

为什么?什么是优点和缺点? – Mikhail 2010-08-13 09:53:23