他人のデバイスリソースを使用してソフトウェアを実行する

他人のデバイスリソースを使用してソフトウェアを実行する

私は古い、弱いラップトップ(デュアルコア1.7Ghz)とクアッドコア携帯電話(arm Cortex a7)を持っています。どちらもLinuxを実行します。

ノートブックの携帯電話リソースを使用してノートブックのコンテンツを実行(処理)できますか?そのようなプログラムがありますか?

ラップトップはx86アーキテクチャを使用し、携帯電話はARMアーキテクチャを使用することは不可能ですか?私は、人々がルーティングされたAndroid携帯にLAMPスタックやLinux用に作られた他のプログラムなどのAndroid以外の製品をインストールするという話を読んだので、これは本当だとは思わない。

これらすべてが愚かだと思いますか?そうかもしれませんから。インターネットを検索しようとしましたが、ゴミだけが見つかりました。

どうするかご存知の方はこちらにもお書きください。たとえば、携帯電話のリソースを使用してデスクトップ版のChromeを実行したいとします。これで、携帯電話のRAMではなく携帯電話のCPUしか使用できません。あるコンピュータではCPUを使用し、別のコンピュータではRAM/ストレージを使用してこれを実行できますか?私が言いたいのは、APIの一種なので、携帯電話のCPUで実行されているプロセスが他のコンピュータのRAMにアクセスしているという事実さえ知らないということです。明らかなボトルネックはネットワーク接続速度です。これはWiFiです(電話機には明らかに有線LANがないため)。私は個人的にG標準を使用していますが、ac標準は毎秒約2 GBを押し込むことができるので、実際にこのボトルネックの問題を解決するようです。

わかりません。どう思いますか?

答え1

コアデュオが携帯電話よりも優れているという事実を無視し、USB経由で2つのデュオ間でX11を配信することもできます。イウィキまだ関連性がある可能性があるiOSの例では、携帯電話にqemuとbinfmtをインストールしてChromeを(ゆっくりと)エミュレートします。そうでなく、十分な知識と時間がある場合は、デスクトップChromeを携帯電話に移植することもできます。これをリモートで実行可能にするには、X11などのリソースにアクセスし、Android携帯電話でJavaインターフェースを使用する必要があるため、おそらくデスクトップスタイル(アンドロイド以外の)Linuxが必要になります。

たぶん可能かもしれませんが、努力する価値がまったくないと思います。私は今Core 2 Duoを実行しています。 64ビットですが、あなたとは異なり、2GBのRAMがあり、うまく動作します。あなたの完全な精神を大切にしている場合は、携帯電話を携帯電話にしてください。

コマンドラインベースのプログラムなどの小規模アプリケーションを使用してこれを正常に実行しました。ただ私のためにクロスコンパイル問題のあるプログラムの使用このツールチェーン。このプログラムは、gitバージョン管理システムと混同しないようにするインタラクティブな小説ソルバーです。私はtcprelay(Wikiページに記載されている)USB経由で自分のiPhoneにSSHで接続し、それを介してゲームを実行するために使用します。しかし、実際にはそれほど価値がなく、とにかくUSBがボトルネックになるでしょう。

答え2

並列化が難しいです。自動並列化はまだ解決されていない研究テーマです。並列化と呼ばれる恥ずかしい問題(例、技術用語です)を除いて、並列化にはほとんど人間の地図が必要であり、人間の地図があっても困難です。並列化が困難な理由は、タスクを別のプロセッサにディスパッチすると多くのオーバーヘッドが追加され、プロセッサは最終的に他のプロセッサが必要なリソースを解放するか、クエリに応答するのを待つのに多くの時間を費やすからです。並列実行による合計時間利得が同期オーバーヘッドよりも大きい場合にのみ、並列実行は価値があります。これが意味するのは、2つのコンピュータ間でタスクを配布する魔法のような方法がないということです。どのプログラムをどのコンピュータで実行するかを決定する必要があります。

このプログラムは、携帯電話のCPUとPCのRAMを使用することはできません。ある車の車輪を使って他の車の軸を動かすことができないように、これはうまくいきません。あるコンピュータまたは別のコンピュータで実行できます。 (RAMをAPIで抽象化できますが、速度はナノ秒ではなくミリ秒で非常に遅いです。)

携帯電話でプログラムを実行し、PCでプログラムと対話することができ、その逆も同様です。つまり、プログラムの実行とそのインターフェイスがホストされている場所を分離できます。これを行うには、次のようないくつかのメカニズムがあります。

  • アジア開発銀行USB経由
  • SSHネットワーク経由の接続(携帯電話にクライアント、サーバー、またはその両方をインストールできます)
  • X11配信SSH経由のGUIプログラムの場合

携帯電話とPCはプロセッサアーキテクチャが異なるため、同じバイナリを実行することはできません。ほぼすべてのLinuxソフトウェアは、サポートされているすべてのプロセッサアーキテクチャで実行できますが、異なる方法でコンパイルされます。人々がARMプロセッサを搭載した電話機にApacheなどのソフトウェアをインストールすると、実際にはARMバイナリをインストールすることになります。たとえば、多くのPCディストリビューションには、32ビットと64ビットのPCバージョンに加えて、1つ以上のARMバージョンがあります。Debian 安定版現在、以下を含む10のプロセッサアーキテクチャをサポートしています。i386(PCの場合)と腕水素夫(携帯電話の場合)。

携帯電話エミュレータでPCバイナリを実行することができ、その逆も同様です。たとえば、GoogleのAndroidエミュレータは次のものに基づいています。QEMU、QEMUはARMプロセッサをシミュレートするために使用されます。 QEMUはx86プロセッサをシミュレートし、ARMプロセッサで実行することもできます。しかし、あなたの場合、エミュレーションは基本バイナリを実行するよりもはるかに遅いので意味がありません。

コンピュータと携帯電話の時計の周波数はほぼ同じです。クロック周波数はプロセッサアーキテクチャ全体にわたって比較できず、同じ命令セットを使用するプロセッサ設計間でも比較できない。プロセッサ設計によって、各命令に必要なクロックサイクル数が決まるからです。どちらが一番速いのかは仕事によって異なりますが、彼らは同じスタジアムにいます。。 4つのCPUを使用して並列化できるタスクはほとんどないため、この数字はほとんどのタスクとは関係ありません。あるコンピュータから別のコンピュータにデータをオフロードするオーバーヘッドを考慮すると、携帯電話から計算をオフロードすることは大規模な並列操作にのみ役立ち、モバイルプロセッサはPCプロセッサよりも高速です。このような並列操作の場合グラフィックプロセッサより良い選択かもしれません(GPUは並列コンピューティングには適していますが、メモリアクセスには適していません)。

関連情報