- ベストアンサー
コンピュータの話の
コンピュータの話の 並列計算とは何ですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
普通のコンピューターには計算(情報処理)を行う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の数が多いため、全部の計算を終える時間が短くて済む、人海戦術の様なやり方です。
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
通常、1つの計算機では1つのことしかできません。 ここでいう「計算機」とは、PCとかの複合したものではなく、もっとコアの部分、CPUのさらに中の部分と考えてください。 PCで「インターネット見ながらメールを書く」のように同時に複数の作業をやっているように見えますが、実際には1つ1つ順番にやっていて、それが高速なので「同時」に見える、というものです。 並列計算とは、複数の計算機を使って、真に「同時」に計算することです。 「複数の計算機」には、PCをネットワークで複数つないで使うものや、マルチコアCPUとか、計算専用の回路(高性能のグラフィックボード等)とかいったものがあります。 並列計算するのは、それなりの準備が必要です。複数計算機があるだけでは並列計算になりません。 PC2台ネットワークでつながっていても、そのうちの1台で動いているExcelが高速になるわけではありません。 単純計算すれば、n個同時に計算すれば、計算時間は1/nになります。 ただ、実際にはそうはなりません。 1例として、a * b + c は a * b が求まらければ +cの計算ができません。このかけ算と足し算を「並列」に計算できないことになります。つまり計算時間は変わりません。
お礼
ありがとうございます。 計算時間はそんなに変わらないのですか。
お礼
ありがとうございます。 一人で計算するのでなく、数人で役割分担するのですね。