分散コンピューティング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/24 03:06 UTC 版)
言語
システム内のあらゆるハードウェアにアクセスできるプログラミング言語は、時間さえあれば分散プログラミングに使える。遠隔手続き呼出し (RPC) は、オペレーティングシステムのコマンドをネットワーク経由で分散配布する。オブジェクト指向設計をネットワークにマッピングしようとする試みとして、CORBA、マイクロソフトのDCOM、Java RMI などがある。疎結合システムでは、一般に人間にも読める中間文書を使って通信を行う(例えば、XML、HTML、SGML、X.500、EDI)。
分散プログラミング向けに機能が強化されている言語としては、以下のものがある。
分散コンピューティングプロジェクト
一般に参加者を募っている分散コンピューティングプロジェクトが多くあり、既に目的とした問題解決などの成果を出したプロジェクトもある。多くのプロジェクトでは
- 計算する元データの分配、収集を行うサーバを用意
- 実際に計算を行う複数のコンピュータ用のクライアントソフトを配布
- 集計結果を Web などで公開
などの手法を用いて、分散コンピューティングを実現、参加者の募集等をおこなっている。これらのプロジェクトでは、一般ユーザの参加により、コストの削減も目指している。これらのプロジェクト特有の課題として、クライアントなどを改ざんして、意図的に誤った計算結果をサーバに送る危険性が挙げられるため、通信方式を非公開にする、同じ計算を複数のクライアントに行わせる、などの対策が行われている。
通常これらのプロジェクトでは個人の所有するPCによる計算結果を集計し、プロジェクトを進行している。その為、参加者数がプロジェクトの進行速度に大きく影響する。集計ではプロジェクトの進行状況とともに、参加者個人あるいは参加者がまとまったチームでの集計結果を表示するなどしているプロジェクトが多い。これが参加者同士の交流につながったり、参加者の競争意識を煽り、参加者の増加につながっているプロジェクトも存在する。
主なプロジェクト
- 稼働中(アルファベット順)
- BOINC - 分散コンピューティングの管理ソフト。さまざまなプロジェクトがこのソフトを利用して分散コンピューティングを行っている。
- distributed.net - 全探索による暗号解読によるプライバシー保護の訴え、全探索による数学的難問の証明など。
- DreamLab - スマートフォン向けのアプリケーション。新型コロナウイルスへの有効物質の探索などを行う。
- Einstein@Home - 一般相対性理論から予言される重力波を、観測データから検出する事を目指す。
- Electric Sheep - フラクタルの動画を生成するフラクタルアート関連のプロジェクト。
- Folding@home - 分子動力学法によるタンパク質の折り畳みの予測(タンパク質構造予測)。
- GIMPS - メルセンヌ素数の発見。
- M4 Project - 第二次世界大戦中に傍受されたナチス・ドイツの未解読暗号の解読を目指す。
- World Community Grid - 主に医療系(エイズやがん、筋ジストロフィー)に関する新薬開発の為の分子解析、タンパク質解析に関するプロジェクト。上記BOINCを使って解析も出来る。
- グーグル八分発見システム「∞Eyes」 - 検索エンジンでの検索結果を解析し、グーグル八分を発見しようというプロジェクト。
- 稼動終了(アルファベット順)
- cell computing - 遺伝子の周期性の検索による遺伝病の検知を目指す。NTTデータが提供。(2008年3月終了)
- SETI@home - 宇宙生物学。地球外からくる信号から非自然信号を抽出し、地球外生命体を探索。(2020年3月終了)
- United Devices Cancer Research Project - 癌治療薬開発の為の分子解析。(2007年4月終了)
脚注
- ^ Leslie Lamport. “Subject: distribution (Email message sent to a DEC SRC bulletin board at 12:23:29 PDT on 28 May 87)”. 2007年4月28日閲覧。
- ^ A database-centric virtual chemistry system, J Chem Inf Model. 2006 May-Jun;46(3):1034-9
- ^ CS236370 Concurrent and Distributed Programming 2002
- ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Annex E Distributed Systems
固有名詞の分類
- 分散コンピューティングのページへのリンク