Path: sokai!ntt-twins!nttlab!titcca!ccut!tansei!b89763 From: b89763@tansei.cc.u-tokyo.ac.jp (Junichiro Makino) Newsgroups: fj.comp.parallel Subject: Re: Special Computer for MD (In Japanese/Kanji) Keywords: MD Message-ID: <5420@tansei.cc.u-tokyo.ac.jp> Date: 17 Jul 90 09:56:58 GMT References: <985@kudpc.kyoto-u.ac.jp> Reply-To: b89763@tansei.cc.u-tokyo.ac.jp (Junichiro Makino) Distribution: fj Organization: Computer Center, University of Tokyo, Japan Lines: 60 東大駒場の牧野です。 In article <985@kudpc.kyoto-u.ac.jp> news@kudpc.kyoto-u.ac.jp (news) writes: >  現状では、次のようなソースコードをVP(Vector Processor)マシンに掛けて > 計算しているのですが、 >  DO 10 I=1,1000 >  DO 20 J=1,1000 >  E(I,J) = Qi*Qj/r + ... >  20 CONTINUE >  10 CONTINUE > ポテンシャルの形が複雑な上に、ベクトル長が1000もあるので、汎用のVPで > はきついように思うのです。 条件分岐(IF 文)が無ければ、ベクトル長が長い上に計算式が複雑と言 うのはVPに最適の条件ではないですか? きついという意味がよく分か らないです。 >  そこで、1atom−1CPUの専用マシンでやると良いのでは、と考えたわけ > ですが、1000CPUのシステムではデータの受け渡しに時間を食われるのであ > まりよろしくない、との指摘を受けました。(bionet.molbio.proteins)確かに、 > 1CPU当たり(x,y,z)座標値が、8bytes*3=24bytes、1 > 000atomでは24kbytesものデータを、1stepの計算毎に転送す > ることになるので、1Mbytes/sec.のバスでなら24msec.かかる > わけですが、片や、1Mflopsの計算能力を持ってすれば、1stepの計算 > に1msec.も要しないでしょうから、何か損しているような気がするのです。 これは、以下の様なアルゴリズムを考えているわけでしょうか? for j=1 to 1000 for i=1 to 1000 processor j sends position data to processor i end for i=1 to 1000 in parallel each processor calculates potential from processor j end end つまり、共有のバスを使って2つのプロセッサだけががデータをやり取りする。 そうだとすればたしかに西垣さんのかかれた通りになります。しかし、ここで バスが「放送」機能を持っていて、1つのプロセッサが出したデータを 他の全てのプロセッサが同時に受け取ることが出来るとすれば、 for j=1 to 1000 processor j broadcasts position data for i=1 to 1000 in parallel each processor calculates potential from processor j end end となって、 1MB/s, 1Mflops を仮定すると、ポテンシャルの計算は 24演 算よりはだいぶ多いでしょうから通信時間は無視できます。ただし 1000 台の共有バスが現実的かどうかは知りません。 PAX とか ADENA みたいな、 隣のプロセッサ同士がつながっているやつでは(ADENA ではもっと凝った 仕掛のようですが)データを順繰りに回してやればなんとかなります。 牧野 淳一郎 (Junichiro Makino) b89763@tansei.cc.u-tokyo.ac.jp 東京大学教養学部情報図形科学教室 phone: 03-467-1171 ex.240 Fax : 03-465-2896