古いラップトップを高速化するために、folding@Home のような Android プロセッサを使用できますか?

古いラップトップを高速化するために、folding@Home のような Android プロセッサを使用できますか?

Android デバイスは今や非常に高性能で、事実上スタンドアロン デスクトップとして使用できます。私はシングル コア AMD プロセッサを搭載した古い Acer 5515 ラップトップを所有しており、クアッド コードの Android も所有しています。このプロセッサのパワー (Android) を使用してラップトップのパフォーマンスを向上したいと考えています。Google で検索しましたが、現時点では誰も見つかりません。誰か何か提案できますか? 私は C# と Android でコーディングできますが、USB インターフェイス/API を使用してデータを転送することを考えました。

答え1

これはいくつかの理由から事実上不可能です。

まず第一に、携帯電話のプロセッサとラップトップのプロセッサにはほとんど共通点がないという事実があります。これらは完全に異なるアーキテクチャであり、コードの互換性はありません。どちらかのプロセッサで実行したいコードはしない他を走らせることができるたくさん仕事の。

モバイル プロセッサがデスクトップ プロセッサと同じくらい強力であるという仮定も誤りです。携帯電話のプロセッサは低電力向けに構築されており、一般的に 5 ワット未満のプロセッサを搭載しています。一方、ラップトップは 35 ワット以上、デスクトップは最大 100 ワットのプロセッサを搭載しています。これらの数字は、デスクトップが非常に非効率的であることを意味しているだけでなく、モバイル プロセッサとデスクトップ プロセッサの複雑さには桁違いの差があります。

どちらも Java を実行できると私に訴えることもできますが、Java はインタープリタ言語であり、コードを実行するマシンに JIT コンパイラが必要です。そのコンパイラは、実行されているアーキテクチャに合わせて調整する必要があり、一方にサポートされている機能が、他方でもサポートされているとは限りません。

携帯電話とラップトップのプロセッサがアーキテクチャ互換であったとしても、これは簡単な作業ではありません。携帯電話でビデオの再生などの面倒な作業をしたいとします。ビデオのデコードは思ったほど簡単ではありません。携帯電話にはビデオをデコードできる専用のハードウェアがあり、それをコンピューターで視聴したい場合は、処理されたデータをネットワーク経由でコンピューターに送り返す必要があります。つまり、コンピューターで再生できるものに再エンコードする必要があります。できたモバイル端末がどんなに強力だと思っても、この操作は多くのデスクトップ端末では困難であり、モバイル端末がリアルタイムで実行できる範囲をはるかに超えています。

小さな作業を単に「パッケージ化」して他の場所にパイプし、それをサポートする大規模なインフラストラクチャがなければ、それを戻すことはできません。Folding@Home がこれを行う理由は、すべてのマシンで実行するための専用ソフトウェアをパッケージ化し、各マシンが実行する大きな作業の塊をパッケージ化して結果を送り返すことができるからです。各「パッケージ」を分割する価値があるようにするには、パッケージ化のコストを相殺するために、かなり長い時間をかけなければなりません。たとえば、Web ページを表示する小さな作業を、ラップトップで実行するよりも高速にパッケージ化する現実的な方法はありません。

答え2

はい、もちろんできます。ただし、両方のデバイスに Linux 環境がある場合に限ります。モバイル プロセッサに 4 つ以上のコア、つまりクアッド コアがある場合。4 未満の場合、このようなことを行う意味はありません。このためには、オープン MPI (オープン メッセージ パッシング インターフェイス) を学ぶ必要があります。これは、Cisco と Amazon によって開発された C ライブラリです。Java でも使用できますが、Java よりも C をお勧めします。C は Java よりもはるかに高速であり、ここでは速度について話しているためです。オープン MPI は、単一のタスクの分散処理を提供します。複数のスマートフォンを使用することもできます。1 つのノードがマスター ノードである場合は通常、コンピューターまたはラップトップで、その他はスレーブ ノードになります。マスター ノードがタスクを決定し、スレーブにタスクを配布し、スレーブから計算結果を受け取ります。他のコンピューターをスレーブとして使用することもできます。ただし、実行する異なるタスクごとにマスターとスレーブのプログラムを開発する必要があるため、非常に難しい作業です。

文法的な間違いがあったらごめんなさい。私は英語があまり分かりません。

Open MPI に関する基本情報: https://en.wikipedia.org/wiki/Open_MPI

LAN 内で MPI クラスターを実行する: http://mpitutorial.com/tutorials/lan 内での mpi クラスターの実行/

例: 15418.courses.cs.cmu.edu/spring2013/article/22

ダウンロード: www.open-mpi.org/software/ompi/v2.1/

答え3

実際、ビルド サーバーがあれば可能です:-)

最善の方法は、Android に完全な Linux 環境をインストールすることです。Complete Linux Installer というアプリでこれを実行できます (ルート)。

しかし、ほとんどのディストリビューションはクロスコンパイラを提供していません。また、ARM デバイスはデスクトップ作業を処理するには弱すぎます。

コンパイルエクスペリエンスを向上させたいのであれば、そうです。

しかし、全体的な経験であれば、それはほぼ不可能です。

答え4

ソフトウェアごとに行うこともできますが、特定のカーネル要素ごとに行う必要があります。特定のコーディング エンティティに対して抽象化した概念を忘れてしまう前に、それぞれを完了できるように、すでに入力/コンパイル済みで、ソース コードの文書化も済ませておく必要があります。システム全体のタスクを分散させる場合は非常に大変な作業になるため、フラグメントごとに実行しますが、最初にシステムがコンピューティングを何に割り当てるかを決定または優先順位付けする方法の概要を作成します。次に、エージェント デバイスごとにコード化します。CPU コンピューティング タスクを分散するユーティリティ ソフトウェアで、マスター デバイスがサーバーのように動作する場合は、はるかに簡単になります。

関連情報