分散コンピューティング
分散コンピューティング(ぶんさんコンピューティング)とは、複雑な計算などをインターネットなどを介して複数のコンピュータを利用して行うことで、一台のコンピュータで計算するよりスループットを上げようとするとりくみのこと。
問題を複数の部分問題に分けて各コンピュータに実行させるのが基本であり、素数探索や数多く試してみる以外に解決できない問題の対処として用いられているものが多い。
一般的に処理を分散すると一台のコンピュータで計算する場合と比べ、問題データの分配、収集、集計するためのネットワークの負荷が増加し、問題解決の為のボトルネックとなるため、部分問題間の依存関係を減らすことが重要な課題となる。
分散コンピューティングプロジェクト
一般に参加者を募っている分散コンピューティングプロジェクトが多くあり、既に目的とした問題解決などの成果を出したプロジェクトもある。多くのプロジェクトでは 計算する元データの分配、収集を行うサーバを用意 実際に計算を行う複数のコンピュータ用のクライアントソフトを配布 集計結果を Web などで公開 などの手法を用いて、分散コンピューティングを実現、参加者の募集等をおこなっている。これらのプロジェクトでは、一般ユーザの参加により、コストの削減も目指している。これらのプロジェクト特有の課題として、クライアントなどを改ざんして、意図的に誤った計算結果をサーバに送る危険性が挙げられるため、通信方式を非公開にする、同じ計算を複数のクライアントに行わせる、などの対策が行われている。通常これらのプロジェクトでは個人の所有するPCによる計算結果を集計し、プロジェクトを進行している。その為、参加者数がプロジェクトの進行速度に大きく影響する。集計ではプロジェクトの進行状況とともに、参加者個人あるいは参加者がまとまったチームでの集計結果を表示するなどしているプロジェクトが多い。これが参加者同士の交流につながったり、参加者の競争意識を煽り、参加者の増加につながっているプロジェクトも存在する。 Distributed.net - 全探索による暗号解読によるプライバシー保護の訴え、全探索による数学的難問の証明など GIMPS - メルセンヌ素数の発見。 SETI@home - 宇宙生物学。地球外からくる信号から非自然信号を抽出し、地球外生命体を探索 United Devices - 癌治療薬開発の為の分子解析
関連項目
スーパーコンピュータ グリッド・コンピューティング ユビキタスコンピューティング