
ゲームなどの特定のタスクのパフォーマンスを比較するベンチマーク (フレーム/秒) はよく見つかります。しかし、私は長い間、複数のコアを使用してアプリ間をすばやく切り替えたいと思っていました。CPU は命令のみを理解し、プログラムは理解しないという概念は理解しています。
これらの質問は、このフォーラムのトピックから外れているハードウェアまたはソフトウェアの購入選択に関するアドバイスや推奨ではなく、技術知識の要求として考えてください。また、私が尋ねていることが誤解されていることにも気付きました。その場合、私の投稿に補足を加えることは可能ですか。さて、この投稿の主な焦点である実際の質問に戻りましょう。
そうは言っても、理論的には、異なるアプリケーションを実行する異なるウィンドウで、私が考えていることを実現できるはずです。1 つの例として、仮想化が思い浮かびます。2 つの CPU を搭載した VPS を購入した場合、2 つの物理 CPU に排他的にアクセスできますか? これは、それが理論的に可能であるように見える理由の例にすぎません。共有 L2 および L3 キャッシュと RAM の問題は認識しています。
私は CPU アフィニティの概念を発見しました。ソフトウェア/ハードウェアの専門家としての私の目標は、仕事中に複数のアプリケーションを同時に使用する必要がある場合に生産性を高めることです。1989 年にコンピュータ エンジニアリングの学位を取得したとき、アプリケーションは割り込みを送信してコンピュータの状態を RAM に保存し、タスク/プログラムを変更してから元のアプリケーションをロードして再開していました。
望ましいのは、Photoshop を 1 つのウィンドウで開き、コーディング IDE に移動すると、Photoshop が他のアプリケーションの影響を受けずにコア 1 で実行され続けることです。たとえば、8 コアの CPU を搭載したコンピューターでは、バックグラウンド アプリ (Linux ではデーモン アプリ) が常に 10 個または 100 個あるため、これを実現するのはある程度難しいかもしれません。
それを念頭に置くと、バックグラウンド アプリが原因で Photoshop ウィンドウに「応答なし」と表示されないように、何らかの方法でアプリに少なくとも 1 つのコアへの排他的アクセスを与えることが望ましいでしょう。アプリケーションの親和性に対処し、AI/機械学習を使用して改善するソフトウェア アプリを 1 つ見つけました。これを手動で制御する方法はまだ調べていませんが、1 つのウィンドウが CPU コアを排他的に制御し、他のスレッドがそれを中断できないように指定できます。
それと関連して、対処方法がわからない問題があります。Google Chrome は Windows OS (他の OS でも同じだと思います) で新しいプロセスを開きます。また、最新の CPU ではタブの切り替えが何度も発生します。これに対処する方法はありますか?
ありがとう、
ブルース
答え1
CPUコアをそのように制御することはできません。現代のCPUはオペレーティングシステムと組み合わせてスレッドスレッドを設定、開始、停止することができ、その後はオペレーティング システムに任せます。
おそらく、独自のオペレーティングシステムを作成することもできます。Intel ドキュメント