スペシャルコンテンツ >> Webミニセミナー >> トプスシステムズのセントラルドグマ


Web ミニセミナー

2013/4/1 トプスの中の人

第1回 ひとりでやるより、みんなでやろう

みなさんは、目の前に膨大な仕事の山を積み上げられてしまったらどうします?端から黙々とやりますか?でも徹夜しても終わりそうにない! もう、あきらめて明日にしちゃう?でもそんなとき、一人でなくて一緒にやってくれる仲間がいればどうにかなるかも。 コンピュータでも同じです。 膨大な処理を1個の処理装置(シングル・コアとか単一CPUとか言います)でやるよりは、複数の処理装置に分割してやるほうが速くできるでしょう。 そのような複数個の処理装置をマルチコア・プロセッサといいます。 大きな仕事を複数の装置で分けあえば、それぞれの装置は分割した小さな仕事をこなせばよいので短い時間でできる筈。 その様子を図に書いてみましょう。




左側がシングル・コアのときの処理のイメージです。 A,B,C,Dと4つのお仕事を順番にこなしていくので、それぞれの仕事にかかる時間がそのまま積み上がっています。 なお、仕事時間をあらわす縦軸は、マイクロプロセッサの場合の仕事時間を表す「クロックサイクル」の数として書いてあります。また仕事A,B,C,Dの中身が2色で塗り分けられています。Aをみると下側の緑色部分が演算処理、上の水色の部分がメモリアクセスと書いてあります。ざっくり言うと、上の水色は記憶装置においてあるデータを出し入れしている時間、下の演算処理はそのデータを実際に加工している時間という感じです。

右側がシングル・コアの4つの仕事を分割して、4つのコア(マルチ・コア)にそれぞれ割り当てたイメージです。仕事をする人が4人いて、並行に仕事をすすめられるのですから、実際にかかる仕事の時間は、一番長く時間のかかるところになる筈。左側のシングル・コアと比べたら一目瞭然、短時間に終わっていますね。

複数の装置で仕事を分ける、といっても分け方もいくつかあるかも。 ジャガイモの皮むきだったら、私はこっちの山200個をやるから、君は向こうの山200個をお願い、みたいな同じ仕事を量で分けるやり方かな。こういう分け方はコンピュータの場合、データ並列といいます。 でも自動車の組み立て(!)だったら違いますよね。流れ作業という方法が有名でしょ。ベルトコンベヤで流れてくる車体にそれぞれの人が別な部品を取り付けていくやり方ですね。ベルトコンベヤが流れていくとあらあら不思議、最後は完成した自動車が出てくるっと。 マルチコア・プロセッサの場合でも流れ作業的な仕事の分け方もできるのです。 難しく言うとプロセス並列と呼ばれます。この辺の仕事の分け方(機能分割)については、またそのうち"Web ミニセミナーコーナー"でとりあげたいと思います。



Webミニセミナー 全4回







© Copyright 2003 - 2013 TOPS Systems Corporation