24小时热门版块排行榜    

查看: 780  |  回复: 4

gaoisbest

金虫 (小有名气)

[求助] 2013年第一天在线等待求助...

我要用java Swing做一个桌面应用软件,其中一个功能是分析大量数据。假设每次需要分析的数据大小约为几G,自己的一台计算机完成这个计算耗时太多,故想实现简单的并行计算功能,即利用局域网(局域网很小,比如就是一个办公室,共有5台个人PC组成的局域网)内其他电脑并分配计算任务给它们,最终返回计算结果。为了能与其他电脑通信,其他电脑中也安装该软件。分析数据时,处理数据的规则是固定的,其它电脑总是用需要执行完全相同的运算过程,而不是经常变化的。每个处理片段数据之间不存在依赖关系。
  
      java RMI可以实现简单的分布式计算,但是我想使用某个成熟的框架来实现,现在的问题就是,选用何种方式来实现?我查阅了相关的资料,下面是对各种可能方案的分析:

[1] MPI
      MPI传输数据和通信问题比较难解决;java 对MPI支持不足,java的一个框架实现MPJ Express(http://mpj-express.org/index.html)不太成熟,用户量不大。

[2] MapReduce  
      MapReduce支持处理T级数据量,其实现Hadoop 基于分布式文件系统,感觉它对于该软件来说有些复杂。

[3] 网格计算
      其java实现框架有GridGain(http://www.gridgain.com/) 和JPPF(http://www.jppf.org/)。

请问各位,上述三个解决方案中哪一个可以更适合的解决这个问题?是不是有其他更合适的解决方案和框架呢?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

当思考成为习惯,成功将随之而至!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

俺不是应助,绝对不是应助。

首先,如果“每次”的数据都是几个GB,而每周或每月都有几次,那么,不如每次换一台电脑来做。没必要搞并行。
其次,如果每年才有几次,那么,不如就在一台电脑上算。没必要搞并行。

总之,没必要搞并行。
2楼2013-01-01 16:33:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)

引用回帖:
2楼: Originally posted by yalefield at 2013-01-01 16:33:42
俺不是应助,绝对不是应助。

首先,如果“每次”的数据都是几个GB,而每周或每月都有几次,那么,不如每次换一台电脑来做。没必要搞并行。
其次,如果每年才有几次,那么,不如就在一台电脑上算。没必要搞并行。 ...

同意 哈哈
如果楼主实现了才用5台电脑一起算,那效率定小于5,说不定你算法上有什么优化就能提高这么多 假设算法不能再优化了 先考虑下GPU?
总之是能不并行就不并行 除非很有必要
3楼2013-01-01 22:42:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gaoisbest

金虫 (小有名气)

引用回帖:
3楼: Originally posted by wangww2011 at 2013-01-01 22:42:05
同意 哈哈
如果楼主实现了才用5台电脑一起算,那效率定小于5,说不定你算法上有什么优化就能提高这么多 假设算法不能再优化了 先考虑下GPU?
总之是能不并行就不并行 除非很有必要...

Hadoop的运行环境需要人工配置吧,但是我要做的这个软件是要挂在网上,是要供别人下载使用的,这样,用户肯定不会配置运行环境啊,求解释...
当思考成为习惯,成功将随之而至!
4楼2013-01-03 17:29:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一鸿731

木虫 (著名写手)

这个问题至今还没解决吗?帮顶一下,对结果表示兴趣。
5楼2013-05-15 21:59:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gaoisbest 的主题更新
信息提示
请填处理意见