Chinaunix

标题: 有多少程序员知道分布式计算 [打印本页]

作者: langue    时间: 2007-02-04 15:25
--

前段时间运行过 SETI@home

计算资源不够,楼主来求助? 标题过于惹眼

另外,这篇帖子的实质性内容和 C/C++ 联系不大,希望楼主下次注意,不要发错板块。

--
作者: daworld    时间: 2007-02-04 15:37
科学是美丽的,可是我真的是缺乏发现美丽的眼睛……
作者: myluorui    时间: 2007-02-04 15:57
langue

我伏地而拜,多谢手下留情。

SETI@home是最有名的了,我算的是EINSTEIN。最想算的项目是LHC.
作者: langue    时间: 2007-02-04 20:29
原帖由 myluorui 于 2007-2-4 15:57 发表
langue

我伏地而拜,多谢手下留情。

SETI@home是最有名的了,我算的是EINSTEIN。最想算的项目是LHC.


平身。你若想推广分布式计算,不妨发起一个 BOINC 项目。

--
作者: 醉卧水云间    时间: 2007-02-04 23:51
整个天气预报计算什么的,中央台老胡说八道。
作者: zxll    时间: 2007-02-04 23:58
上学期期末考试就是设计一个小的分布式计算系统处理图像,用UML
作者: redspider    时间: 2007-02-05 10:03
看我的签名图片
PS: 我不是程序员,也不想做程序员
作者: DraculaW    时间: 2007-02-05 16:56
搞过一点点CORBA 呵呵
作者: old-cow    时间: 2007-02-05 18:11
大家还是先了解一下并行计算吧。
据我所知,气候,地球物理,石油,场景模拟,生物分析等需要进行大量计算
的学科,使用的大多都是传统的并行计算,而不是上文所说的分布计算。
作者: myluorui    时间: 2007-02-05 18:14
原理我也不知道 分布计算只是为了让更多的空闲的CPU利用起来。
解决一些需要大量计算的问题。

有的项目可能有几十万个CPU为它计算。
作者: langue    时间: 2007-02-05 18:19
原帖由 old-cow 于 2007-2-5 18:11 发表
大家还是先了解一下并行计算吧。
据我所知,气候,地球物理,石油,场景模拟,生物分析等需要进行大量计算
的学科,使用的大多都是传统的并行计算,而不是上文所说的分布计算。


我觉得分布计算的概念更广一些。并行计算,可以用集群。而在松散的国际互联网上,就很难做到并行了,多为分布式进行。

--
作者: myluorui    时间: 2007-02-05 18:26
langue 斑竹回复一向神速
作者: hiwoody    时间: 2007-02-06 15:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: justicezyx    时间: 2007-02-08 21:27
分布式计算简单地说就是网络编程。。。
作者: langue    时间: 2007-02-08 22:03
原帖由 justicezyx 于 2007-2-8 21:27 发表
分布式计算简单地说就是网络编程。。。


不正确。再简单它也是一种计算。

--
作者: shaver    时间: 2007-03-01 16:50
运行过一个,后来没有注意了,好像是DNA序列吧
作者: xiaomiao    时间: 2007-03-01 18:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 飞灰橙    时间: 2007-03-01 18:57
基于虚拟机环境吗?
否则如果对方请你计算的代码, 是断病毒怎么办?
作者: redspider    时间: 2007-03-01 19:02
原帖由 飞灰橙 于 2007-3-1 18:57 发表
基于虚拟机环境吗?
否则如果对方请你计算的代码, 是断病毒怎么办?

偶的解决方案:
UNIX like 用权限控制;
windows 凭运气
作者: beepbug    时间: 2007-03-01 20:05
楼主说的,只是分布式计算中的一块。现在比较流行的形式叫网格计算。现在还比较空。
L版说得对:“我觉得分布计算的概念更广一些。”
分布式计算是计算模式的一种。确切定义好像还没有统一的说法。个人认为:如果一个应用,它的所有计算实体(就是由数据和代码组成的对象)不在单个机器里,都是分布式计算。
上面DraculaW说的CORBA,由其组成的应用,就是一种分布式计算。由WebServices组成的应用,也是分布式计算。只不过前者是紧耦合形式,后者是松耦合形式。
广义地说,两层或多层C/S也属于分布式计算。
作者: langue    时间: 2007-03-01 20:38
并行计算与网格计算
http://www-unix.mcs.anl.gov/dbpp/
作者: 白天晒太阳    时间: 2007-03-01 23:31
感觉中国计算机实验室里研究这个的比较多吧

并行  分布  和网格计算的算法在数据库应用方面讨论的比较多

现在杀毒软件的企业版很多用的就是分布......哈哈 是不是我说的这个有点跑题了
作者: beepbug    时间: 2007-03-03 08:01
分布,是网络层面的。
硬件环境是网络。软件环境有许多种,如CORBA、DCOM、RMI、WebServices等。
并行,是机器层面的。
多个CPU,或以内部总线互连接,或以系统总线互连,或以外部总线互连,这是平行的硬件环境。其软件环境需要解决子任务划分、子任务分配、子任务同步与互斥、CPU资源监控等问题。
作者: 黑鸟    时间: 2007-03-13 22:31
读书时搞了一下,发觉很需要耐性,嘿嘿~~~
作者: dnawym    时间: 2007-03-29 09:22
分布式用的很多的
作者: evaspring    时间: 2007-04-02 22:17
呵呵。。。。

我到是愿意贡献下下我自己的电脑资源哦。。。
作者: prolj    时间: 2007-04-06 08:55
并行过,没分过布,没条件。
不会是所谓的“肉鸡”吧?良心上不太好。

国内的确比较关心更容易看见的东东,更容易看见           。
作者: Iamlangue    时间: 2007-04-06 20:57
原帖由 prolj 于 2007-4-6 08:55 发表
并行过,没分过布,没条件。
不会是所谓的“肉鸡”吧?良心上不太好。

国内的确比较关心更容易看见的东东,更容易看见           。


一样东西,两个概念。一个全凭自愿,一个近似偷窃。

.
作者: yuanchengjun    时间: 2007-10-04 23:10
并不是一定要做过;闻道有先后,术业有专攻;做过,是一种经验;没做过,也没什么.
在中国的事情那可多了,不仅仅只这一件.
作者: jato    时间: 2007-10-05 01:19
现在的C/C++ 编译器大多都支持 OPENMP, 像 GCC, Solaris CC, 和 MS Visual Studio 2005 都支持的, GNU 和 Solaris 的 Fortran 也都支持 OpenMP, 这样用 C/C++, FORTRAN 就可以开发并行计算的软件. 多核CPU 越来越多, 并行计算用的会越来越广的
作者: tom_xx_hu@yahoo    时间: 2007-10-05 01:44
原帖由 jato 于 2007-10-5 01:19 发表
现在的C/C++ 编译器大多都支持 OPENMP, 像 GCC, Solaris CC, 和 MS Visual Studio 2005 都支持的, GNU 和 Solaris 的 Fortran 也都支持 OpenMP, 这样用 C/C++, FORTRAN 就可以开发并行计算的软件. 多核CPU 越来 ...

OpenMP只是在线程这一层,属于同一机器,严格说不属于分布式范畴。
并行和分布式计算都是在网络节点间进行。两者都并行两者都分布。差别在于前者是一个计算应用(one application),分散在网络上并行合作计算,计算过程中需要同步和协调;后者是一个计算任务,可以分解成相对独立的单元,分散在网络上分别(基本上)独自计算。
作者: jato    时间: 2007-10-05 06:16
原帖由 tom_xx_hu@yahoo 于 2007-10-5 01:44 发表

OpenMP只是在线程这一层,属于同一机器,严格说不属于分布式范畴。
并行和分布式计算都是在网络节点间进行。两者都并行两者都分布。差别在于前者是一个计算应用(one application),分散在网络上并行合作计 ...


哈哈, 没留意主题, 忘了严格的分布了, 那加上 MPICH2 好了, 虽然还有 PVM, Linda 等, 但它们好像没有    MPI  用的人多.
不过从理论上说, 同一台机器的分布和网络上的分布, 差别只在任务的颗粒度大小, 和通讯的信道不同罢了.
同一台机器, 若有数百个, 甚至数千个节点来计算, 我想你怎么也不会不认为它是分布式计算的, 虽然它们也可以只在线程这一层.
作者: tom_xx_hu@yahoo    时间: 2007-10-05 09:53
分布式计算和并行计算的差别到底在那里,确实可以讨论。我个人的理解,仅以MPI为基础的计算仍然是并行计算而非分布式计算,尽管集群中可以有上千台计算机参与计算。并行与分布计算的主要区别我想是两条:一是各计算单元的时序相关性,二是网络拓扑意义上的距离。并行和分布计算的英文分别是parallel computing 和 grid computing。中文翻译相当贴切,甚至比英文更更贴切。parallel和并行都隐含了不同计算线程(请勿与OS下的执行线程混淆)之间在时序上的相干性,线程之间需要协调和同步。在共享内存系统,这种协调同步通过内存、IPC以及Posix Thread得以实施;在分布式内存系统(比如集群或MPI机器),现在流行的是通过高速通讯网跑MPI实现这种协调同步。
而grid computing的grid就反而不如中文的“分布”更贴近愿意。根据wikki,grid computing 有四重含义:集群、utility computing、机构内部空闲计算机集合而成的虚拟超级计算机、以及
The creation of a "virtual supercomputer" by using a network of geographically dispersed computers. Volunteer computing, which generally focuses on scientific, mathematical, and academic problems, is the most common application of this technology
按照LZ此帖的原意以及跟帖的语意环境,我们在这最后一层含义上使用grid computing。中文“分布式计算”确乎胜于原文。
由于在地理上以及网络拓扑上的远距离,分布的计算单元之间不可能有很频繁而时效要求高的协调同步,科学上他们是一个完整计算的分部,在computer science 和工程上,他们却几乎是独立的计算。
总之,“并行”强调“同时进行”,“分布”则是“分头去做”。

[ 本帖最后由 tom_xx_hu@yahoo 于 2007-10-5 10:08 编辑 ]
作者: wangyq126    时间: 2007-10-07 13:17
前来学习
作者: gridbird    时间: 2007-12-10 10:54
如果对并行计算有兴趣的话,可以去参考一下中科院网络中心超级计算中心和上海超级计算中心的站点,那里有很多关于并行计算,并行编程,并行算法方面的信息和学习资料,另外国家高性能计算中心(合肥)也就是中国科技大学的陈国良院士是国内做并行计算的权威,出过有关并行计算的一套教材,本人认为是国内最好的并行计算方面的学习材料。

另外如果对网格计算比较有兴趣的话也可以参考原来清华大学的刘鹏创办的网格信息中转站,那里有相当多的资料。

[ 本帖最后由 gridbird 于 2007-12-10 10:55 编辑 ]
作者: antonym55    时间: 2007-12-15 02:11
我只用过ICE和C#的Remoting,CORBA, RMI,什么的没用过




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2