私の質問は、サーバーを使用してネットワーク全体でタスクを明示的に共有し、各コンピューターに個別にジョブを割り当てて「負荷を共有する」要求の厳しいネットワーク アプリケーションで作業するときに熟考したものです。
私は疑問に思いました: これはもっと暗黙的な方法で行うことができますか?
質問
ジョブのプログラムやプロセスを各コンピューターにインストールする必要なく、ジョブをより効率的に実行するために、コンピューターの任意のパブリック ネットワークの周りにプロセッサ集中型のタスクを分散させる可能性はありますか?
シナリオ
1 から 10,000,000 までのすべての数値のすべての素因数分解をコンピューターに計算させ、それらをデータベースに保存しようとしている、途方もなく集中的な数学シナリオがあるとしましょう (スペースがあり、アルゴリズムが既に実装されていると仮定します)。独自のクラス、プログラム、ダイナミック リンク ライブラリ、または任意の実行可能なプロセスで。)
この負荷のかかるプロセスをネットワークまたはマルチコア スーパー コンピューターで共有する方が効率的ですが、どちらもコストがかかります。私の知る限り、特定のアルゴリズムを実行するために特別に設計されたプログラムが必要であり、そのプログラムを上記のクラウド/分散コンピューティング ネットワーク全体にインストールし、サーバーで各コンピューターが何を行っているか (つまり、現在計算している数) を追跡する必要があります。の素数)。
結論
全体:
不特定の種類のプロセスのプロセッサ時間を共有できるクラウド プログラム/OS/スイートを作成することは可能でしょうか?
もしそうなら、それをどのように実装しますか? どこから始めますか?
特定されていない非明示的なタスクを実行できるようにするための専用の OS を作成しますか?それとも、一般的なコミュニティを支援するためにプロセッサ クロックの割合を喜んで共有するボランティアのコンピューターにインストールされたクラウド対応プログラムで行うことが可能でしょうか)。 .
これが実現可能であるとしたら、より大きなクラウドの自発的な一部になりますか?
これは素晴らしいプロジェクトなので、皆さんの考えと考えられる解決策をぜひお聞きしたいと思います。