web-dev-qa-db-ja.com

2台のコンピューターの処理能力を組み合わせることができますか?

ここにいくつか質問があります。

  1. 2台のコンピューターの処理能力を組み合わせることができますか?
  2. どうすればいいのですか?
14
Wern Ancheta

実行中のプログラムが2番目のマシンを使用してコードを実行できる場所は透過的ではありません。それらは論理的に分離されており、CPUが互いに通信したり、メモリにアクセスしたりすることができないためです。

これは、処理能力を組み合わせることができないという意味ではありません。

  1. 特定のソフトウェアには、他のマシンで実行できるコンポーネントがある場合があります。プロテインフォールディング、SETI @ home。これらは特殊化する傾向があります。つまり、Excelを起動して別のコンピューターを使用して計算するように指示することはできません。
  2. プロセッサを集中的に使用するタスクを実行している場合は、セカンダリマシンを使用してそれらを実行できます。ビデオストリームのエンコード/再エンコード。

なんらかの方法でセカンダリコンピューターを利用する場合は、リモートコントロールできることが重要です。これを行う2つの方法は、ある種のリモートアクセス(RDP、VNC)を使用するか、またはsynergy +のようなものを使用します。

11
mindless.panda

私の最もよく使われるラインの1つ-はい、いいえ!

はい、可能です。このように機能するように設計された特定のアプリケーションでは。 (一般的にクラスターと呼ばれます- 詳細はこちら

いいえ(少なくとも私の知る限り)既製のコンピューターを2台取り外し、それらを「結合」して、メモリ、処理能力、その他すべてを組み合わせたものを取得することはできません。

5
William Hilsum

とても可能です!しかし、あなたの質問の単純さから判断すると、魔法のようにコンピューターを2倍に高速化するプログラムを単に実行したいと思います。これは不可能です。

プログラムを実行すると、CPUを起動してHDD、RAM、CPUレジスタ間でメモリを移動することによって状態を維持すること、およびさまざまなコンポーネント(ビデオカードやネットワークカードなど)のアドレスを理解する必要があります。別のコンピュータのCPUを使用して問題を解決するには、同じメモリにアクセスする必要があります。また、別のコンピューターでコンピューターのメモリのミラーイメージを維持するには、オーバーヘッドが非常に大きくなるため、別のコンピューターを追加してパフォーマンスを得ようとする目的を簡単に無効にすることができます。

しかし、複数のコンピュータ間で分割できるもののタイプは、イメージレンダリングまたは独立して動作できるいくつかの数学計算です。

4
Nippysaurus

私は他の答えに同意します:

  • 巨大なマルチシートExcelブックがあり、Excelを2倍の速さで実行できるようにしたい場合(数式やシナリオの更新、マクロの実行など)、うまくいきません。
  • 1から1,000,000までのすべての整数の平方根を見つけるなど、簡単に分割できるカスタムアプリケーションがある場合は、問題を簡単に分割して配布するのは簡単です。
  • Π(pi)の最初の1,000,000桁を計算するようなカスタムアプリケーションがある場合、問題空間を十分に理解していれば、それを実行できる場合があります。

分散(マルチコンピューター)環境で実行するソフトウェアの開発について話している場合、いくつかの提案を以下に示します。

  • リモートプロシージャコール(RPC) を使用します。ホストをファイルサーバーまたはWebサーバーにすることができるのと同じように、RPCを使用すると、基本的にCPUサーバーであるマシンを作成できます。概念的には、RPCクライアントとなるマスターマシンが1つあり、サーバー上で透過的に実行されるライブラリ関数を呼び出します。最も単純な形式では、このアーキテクチャは、1つのCPUだけが同時に実行されるため、パフォーマンス上の利点はありません。ただし、非同期モデルでは、クライアントはサーバーでリモートプロシージャを開始し、サーバーの実行中に他のことを実行できます。
  • nified Parallel C(UPC) など、並列処理用に設計された言語を使用します。これは、分散データと同時実行のための機能を備えたC言語の拡張です。参照:
3
Scott

2台のPCの処理能力を1つに組み合わせる方法が必要な場合、「最も簡単な」方法は、VMWare ESXiなどのソフトウェアを使用して、両方を仮想マシンホストとして構成することです(事前にこれを行うと、互換性のあるハードウェアを持つデバイス)、リソースグループまたはクラスターを作成し、両方のコンピューターのリソースを使用する仮想マシンを作成します。これは完全な2倍の速度を実現するものではなく(仮想化によりリソースが失われます)、互換性の要件があるために制限されたソリューションですが、これは質問に対する最も「正しい」回答です。仮想マシンは単一のPCのように動作し、両方のホストの処理能力から仮想化を維持するために必要なオーバーヘッドを差し引いたものになります。

3