首先,我提出这个项目的首要目的是:考察检验自己的编程能力;次要目的是科研。毕竟PHP是大一学的,C++、MFC也有段时间没有碰了。我想给自己进行一次“大考”,在经过几方考虑后,提出了这个项目。最后的保留目的则是毕业设计。
       BOINC是世界级的分布式计算平台,虽然我也曾参与其中很长时间(SETI啥的……=。=),但是其项目服务器搭建对于我来说实在太不顺手了——你一个全是命令行的debian,让我这个从小沐浴着windows图形化界面的阳光长大的小孩情何以堪……一方面是锻炼自己,一方面还是为了迎合自己的一些习惯和要求,我准备自己来搭建整个分布式计算平台。我还找到这么一个网址:http://www.ramseyx.org/  这个应该也是学生自己做的分布式计算平台,这个和我的预想就比较接近。在和Spock交谈过后发现,这个经过一些扩展和增强,可以达到我之前提出的:统筹化云计算网络(参见前博文:《关于一种统筹化云计算网络的设想》。所以准备分两期来逐步实现。

       
「study」I 期:
       以「寻找素数」为基本计算任务。分为三大部分:服务端、客户端、计算核。其中客户端准备分PC和安卓两版。按照现有的经济条件,服务端以及整体计算平台准备基于JAVA(服务端基于jsp或者javascript脚本)。若以后条件成熟,可以另外考虑基于Hadoop进行开发。Hadoop是从文件格式(物理层)就开始,为分布式计算量身打造的框架。而目前我们的条件是租用一个网站虚拟主机作为服务端(便宜的一年才百元),无法对服务器本身进行改动(这得是主机托管才行,一年要近万元)。
       这个阶段,计算核固定为素数寻找,但是需要做到计算核独立。主要任务是搭建框架,服务端完成“用户管理”“任务管理”等等,客户端完成“任务管理”“计算核调度”“中断处理”等等问题。其中必然需要制定和解决众多标准与接口问题。
       
「study」II 期:
       在本阶段,计算核将可以自由变换(分布式计算与云计算的区别就在这:分布式计算面向任务,即单一计算核,由服务端指定;云计算面向对象,即复数计算核,且由各客户端指定)。服务端将一部分“任务管理”功能下放至客户端,实现部分的“自组织计算”。同时可以实现复数计算核的统一工作。

        首先,这个计划是以“锻炼自身编程能力”为主,以“科学研究”为辅。同时也可以预见,在整个项目的实施过程中将遇到很多有价值的科研问题(工程问题自然会不计其数)。已经预想的如:若客户提交的计算结果存在一定错误的概率,那么如何安排校验是最优的(效率与正确性的最优解)?当然,在平台搭建基本完成后,我们也会将注意力集中一部分在科研改进上(比如增加功能与UI使我们能观察整个分布计算过程的所有细节)这和BOINC或者
ramseyx就不一样了,他们是为了解决某些实际问题而搭建的分布式计算平台,我们则是为了研究这个平台本身才去搭建的它。

       都给我用电脑看日志啊摔~不然我选的BGM谁听啊掀~(╯‵□′)╯︵┻━┻