Skip to main content

分散プログラミングとは何ですか?

distributed分散プログラミングは、並列プログラミングまたは並列コンピューティングの1つの形式です。並列プログラミングには、明日の天気の予測など、特定の問題に同時に動作するコンピューター内のコンピューターとコンピューティングユニットが含まれます。コンピューティングユニットは、非常に密接に位置し、調整されているか、離れて配置できます。コンピューティングユニットが離れている場合、分散プログラミングと呼ばれます。このようなシナリオでは、コンピューティングユニットは互いに異なり、オペレーティングシステムとネットワークのセットアップも異なり、コンピューティングアクティビティのプログラミングが特に困難になります。プログラムの一部が異なるコンピューティングユニットで実行できるように分割します。これらの部分は、多くの場合、プロセスと呼ばれます。プロセスは同時に実行されますが、入力と結果を相互に通信する必要があります。Intelで実行されている部品や太陽で実行される別の部品など、プロセスが異なるハードウェアで実行されている場合、プログラムをコンパイルして最適化する必要があります。、そして、同じアルゴリズム、一連のルール、または問題解決の手順を使用して、異なるコンピューティングユニットをさまざまな部分で動作させます。たとえば、10,000ペアのゲノムを割るために、最初の1,000ペアを最初のコンピューティングユニットに割り当てることができます。2番目のコンピューティングユニットに割り当てられた2番目の1,000ペアなど、すべて同じアルゴリズムを使用します。分散プログラミングを使用すると、1つの利点は、異なるコンピューティングユニットが異なるアルゴリズムを実行して同じ問題を解決できるため、大幅に優れたソリューションにつながることです。これは、ジグソーパズルのパズルを解くことに似ています。一部の人々は境界線をつなぎ合わせて、特定の色の断片をまとめます。一部のコンピューティングユニットは、他の作業を処理するために故障したり、中断されたりする可能性があります。入力または計算結果を含むメッセージは、目的地に到達できない場合があります。プログラムがnaï veの方法で記述されている場合、コンピューティングユニットまたはいくつかのメッセージの損失により、コンピューターのセット全体がハングアップする可能性があります。他のプロセスによって行われた作業、またはすべてのプロセスは、プロセスがマスターになることなく、ピアツーピアで動作する可能性があります。分散プログラミングで試みられた問題のいくつかの例には、石油、タンパク質や生物学的分子のモデリング、コード化されたメッセージの割れ、軍事シミュレーションなどのリソースの地質データの分析が含まれます。地球が受け取ったラジオメッセージからインテリジェントな地球外の生活を検索するSETIプロジェクトは、おそらく最も有名な例の1つです。