• ベストアンサー

コンピュータの話の

コンピュータの話の 並列計算とは何ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 普通のコンピューターには計算(情報処理)を行うCPUという部品が、1個だけ使われていますが、計算量が膨大で普通のコンピューターでは計算に時間が掛かり過ぎる場合の様に、特別速い計算速度が必要とされる場合には、CPUを複数持っているスーパーコンピューターが使われます。  その場合、CPUの分業のやり方によって、並列方式とパイプライン方式の、2通りのやり方があります。  例えば、「多種類の商品を仕入れて、原価の100円増しの税込み価格で売った場合に、利益は幾らになるのか?」という問題があるとします。  普通のコンピューターではCPUが1個しかありませんから、 (1)メモリーに記録されているデータから呼び出した原価の値に100を足す (2)(1)の計算結果の値を1.05で割る (3)(2)の計算結果の値から原価の値を引く (4)利益の値を記憶するメモリーに、記憶されている値に、(3)の計算結果の値を足す (5)(4)の計算結果の値を、利益の値を記憶するメモリーに、記憶させる (6)次の商品の原価の値を、メモリーに記録されているデータから呼び出し、(1)~(5)の作業を繰り返す という計算処理を行います。  これが、パイプライン方式では、 ●1個目のCPUでは、上記の(1)の作業のみを行って、その結果を2個目のCPUへ送った後、次の商品に関する作業に移る ●2個目のCPUでは、上記の(2)の作業のみを行って、その結果を3個目のCPUへ送った後、次の商品に関する作業に移る ●3個目のCPUでは、上記の(3)の作業のみを行って、その結果を4個目のCPUへ送った後、次の商品に関する作業に移る ●4個目のCPUでは、上記の(4)の作業のみを行って、その結果を5個目のCPUへ送った後、次の商品に関する作業に移る ●5個目のCPUでは、上記の(5)の作業のみを行った後、次の商品に関する作業に移る という、自動車工場の流れ作業の様なやり方で、分業して計算を行うため、普通のコンピューターよりも短い時間で、計算を行う事が出来ます。  これが、並列方式では、多数のCPUが、それぞれ上記の(1)~(6)の作業を繰り返し行う処は、普通のコンピューターと同じですが、 1個目のCPUが、ある商品に関する作業を行っている間に、 2個目、3個目、4個目、・・・・・といった他のCPUは、それぞれ別の商品に関する作業を行います。  計算を行っているCPUの数が多いため、全部の計算を終える時間が短くて済む、人海戦術の様なやり方です。

agency
質問者

お礼

ありがとうございます。 一人で計算するのでなく、数人で役割分担するのですね。

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

通常、1つの計算機では1つのことしかできません。 ここでいう「計算機」とは、PCとかの複合したものではなく、もっとコアの部分、CPUのさらに中の部分と考えてください。 PCで「インターネット見ながらメールを書く」のように同時に複数の作業をやっているように見えますが、実際には1つ1つ順番にやっていて、それが高速なので「同時」に見える、というものです。 並列計算とは、複数の計算機を使って、真に「同時」に計算することです。 「複数の計算機」には、PCをネットワークで複数つないで使うものや、マルチコアCPUとか、計算専用の回路(高性能のグラフィックボード等)とかいったものがあります。 並列計算するのは、それなりの準備が必要です。複数計算機があるだけでは並列計算になりません。 PC2台ネットワークでつながっていても、そのうちの1台で動いているExcelが高速になるわけではありません。 単純計算すれば、n個同時に計算すれば、計算時間は1/nになります。 ただ、実際にはそうはなりません。 1例として、a * b + c は a * b が求まらければ +cの計算ができません。このかけ算と足し算を「並列」に計算できないことになります。つまり計算時間は変わりません。

agency
質問者

お礼

ありがとうございます。 計算時間はそんなに変わらないのですか。

関連するQ&A