各位好,小弟有个问题如下:
局域网内有一台计算机需要计算大量数据,故想利用同一个局域网内的其他空闲计算机计算,并返回给计算结果。
请问,这属于并行计算的范畴吗?
如果用java实现并行计算,是否已经存在着几个模型呢?
谢谢各位!

解决方案 »

  1.   

    我刚接触这一块,发现MPI可以实现这个功能。请问具体实现的时候,是不是需要局域网内其他空闲电脑的用户名和密码?然后才能连接?连接之后,又如何给它们分配任务呢?
      

  2.   

    我刚接触这一块,发现MPI可以实现这个功能。请问具体实现的时候,是不是需要局域网内其他空闲电脑的用户名和密码?然后才能连接?连接之后,又如何给它们分配任务呢?
      

  3.   

    是框架,就是选择以何种方式/形式来利用/整合其它计算机的计算能力/资源webservice不失为一种吧
      

  4.   

    我想用java编写Swing桌面应用程序,要达到利用别人的电脑,有没有合适的框架呢?谢谢
      

  5.   

    谢谢您的指点。我想要实现的是用java编写个桌面应用程序,其中之一需要处理大量数据。
    在单个电脑上运行时间太长,所以我想到利用局域网内其他电脑。
    假设现在的情况是:有一个由十台普通个人电脑组成的局域网,我的电脑是其中一台,如果我想尽快处理完大量数据,您能提供几种解决方案吗?
    [1] 网格计算?
    [2] MPI?
    [3] 其他框架?(您说的‘合适框架’有哪些呢?)
    万分感激...
      

  6.   

    框架我不清楚一般如果自己编写,就在各个局域网机器上安装一个worker server程序(完全可以用java写),然后和你的主工作程序进行交互就行了
      

  7.   

    几个问题需要确认下:
    1、处理规则是否固定,也就是其它电脑总是用需要执行完全相同的运算过程,而不是经常变化的;
    2、被处理数据的规模,也就是为了让其它电脑能进行处理,需要传输 几GB的数据给它 还是只需要有 几KB?
    3、每个处理片段数据之间是否存在依赖关系,比如必须某个数据先处理完毕,后续才能开始处理另外几个数据?
    另外,楼主可以先了解下 MapReduce
      

  8.   

    您好,下面是三个问题的回答。
    1. 处理规则是固定的,不是变化的。
    2. 传输几百M的数据吧,到不了几G。
    3. 每个处理片数据之间没有依赖关系,它们之间是独立的。
    我会学习下MapReduce,请问您接下来如何考虑呢?万分感激
      

  9.   

    规则是固定的,这个挺好,省很多事情;意味着你的框架不需要支持对程序逻辑的迁移。传输量有几百M,这个其实挺糟糕的,意味着为了计算就要浪费半天网络资源;更可怕的是,这很可能意味着你的主机网络可能将成为瓶颈:比如有10个节点需要帮你计算,你就要传输几个G的资料出去,资料没传完毕的话,意味着计算可能也没法开始。
    ——这个要考虑是否能减少数据传输量或者计算本身是否可以是流式处理。独立很好,意味着不需要进行复杂的协同控制。
    总的来说用MapReduce框架应该基本能满足你的要求,它可以帮你完成节点监控、任务切割、网络通讯之类的基础保障;算法等当然要你自己去搞定;你学习下,然后用Apache提供的开源框架来试试看吧。
      

  10.   

    非常感谢您的指点。我想用java来实现这个功能,请问Apache提供的开源框架,您能提供该框架的名字吗?我刚接触这一块,实在是一头雾水。如果您能提供该框架的名字,真是省了很多时间,万分感谢...
      

  11.   

    您第一帖回复了说:用网格计算可以解决这个问题,现在又说用MapReduce框架可以解决问题,那么,哪个可以更好的解决问题呢?谢谢您..
      

  12.   

    很多技术都能解决你的问题,即便你不用任何框架,或者就直接把计算节点开发成一个 WebService 服务。网格计算的优势是可以动态迁移处理逻辑,也就是可以将程序动态部署到新的节点上去,你这里并不需要。Apache的项目名称叫做: Hadoop主要是我确实不太清楚你的需求究竟有多复杂,如果简单的话,其实你就直接在其它人电脑上安装个Resin或Jetty之类的轻量级中间件,然后写个 JSP 页面供你的主程序来调用,也能实现所谓的 “分布式计算”。
    不要拘泥于招式,手中无剑,心中不贱