たとえば、ユニコアCPU上で動作する組み込みアプリケーションがあるとします。そのアプリケーションはマルチコアCPUに移植されます。そのアプリは1つまたは複数のコアで動作しますか? より具体的には、私はARM CPU(とだけでなく)とツールチェーンの詳細に興味があります。 g。標準的なC/C++ライブラリ この質問の意図は次のとおりです。特定のライブラリの複数のコアまたはコンパイラのツールチェーン、開発者および標準プラットフォームで実行することをCPUが決定するのは、その責任ですか?もう一度、他のシステムの傾向にも興味があります。 異なるCPU上で実行される同じアーキテクチャーを実行するアプリケーションとRTOS(Linuxなど)はたくさんあります。つまり、それらは異なる方法でコンパイルされていますか?異なるCPUSのマルチスレッドアプリケーション
答えて
一般に、シングルスレッドコードは常に1つのコアで実行されます。複数のコアを利用するには、複数のプロセス、複数のスレッド、またはその両方が必要です。
あなたのコンパイラがここであなたを助けることは何もありません。これはアーキテクチャ上の考慮事項です。
たとえば、複数のスレッドを使用している場合、ほとんどのマルチコアシステムでは、実行しているオペレーティングシステムが適切にコンパイルされていれば、使用可能なコアで実行されます。コンパイルされたシングルコアのみのOSを実行すると、明らかにここでのオプションが制限されます。
1つのスレッドプログラムが1つのスレッドで実行されます。理論的には、スレッドが別のコアに移動するようにスケジュールされている可能性がありますが、スケジューラーは単一のスレッドを複数のスレッドに変換して並列処理を行うことはできません。
EDIT 質問に間違いがありました。アプリケーションに複数のスレッドがあり、そのアプリケーションが新しいマルチコアCPUとバイナリ互換性がある場合、OSスケジューラが適切であると判断した場合、スレッドは実際には異なるCPUで実行するようスケジュールされます。
私はそのアプリケーション自体がサインスレッドであるとは言及していませんでした –
@KarolisMilieškaああ私はあなたの質問を誤解しました。私の答えを修正しました。 – bodangly
OSスケジューラかCPUスケジューラですか? –
- 1. Scalaアクター:スケジューリングされたマルチスレッドアプリケーションへの2つの異なるアプローチ
- 2. 2 cpusのサーバに移動
- 3. WinAPIマルチスレッドアプリケーション
- 4. マルチスレッドアプリケーションのデバッグ
- 5. マルチコアプロセッサでのマルチスレッドアプリケーション
- 6. Berkeley DBのマルチスレッドアプリケーション
- 7. マルチスレッドアプリケーションのHTTPクライアント
- 8. マルチスレッドアプリケーションのGCOV
- 9. マルチスレッドアプリケーションのWCFプロキシシングルトン
- 10. マルチスレッドアプリケーションのSetCurrentDirectory
- 11. マルチスレッドアプリケーションでのBerkeley DB
- 12. SQLAlchemyマルチスレッドアプリケーションでの適切なセッション処理
- 13. マルチスレッドアプリケーションからの効率的な終了
- 14. Windows CEの単純なマルチスレッドアプリケーション - スレッドスケジューリング
- 15. QSqlモジュールとマルチスレッドアプリケーション
- 16. PyMySQL with Django、マルチスレッドアプリケーション
- 17. マルチスレッドアプリケーションとスレッドセーフリスト
- 18. マルチスレッドアプリケーションのシングルトンクラス、ロックの提案
- 19. マルチスレッドアプリケーションでのFiredacの使用
- 20. マルチスレッドアプリケーションでのベクトルの使用
- 21. マルチスレッドアプリケーションの静的クラス/メソッド
- 22. マルチスレッドアプリケーションでのアクセス違反、C++
- 23. .netマルチスレッドアプリケーションのプロファイリング(Visual Studio 2008)
- 24. dockerにcpusへの排他アクセスを与える方法?
- 25. intel cpusのスマートキャッシュ機能を変更するには?
- 26. マルチスレッドアプリケーションでのjava.util.loggingによるログ
- 27. マルチスレッドアプリケーションのプロセス番号を見つける
- 28. OpenMPIで--cpus-per-procを-map-byに置き換える方法
- 29. マルチスレッドアプリケーションでopencv waitKey()を使用
- 30. gtkDを使用したマルチスレッドアプリケーション
ARM keilコンパイラの標準ランタイムライブラリはrtosをサポートしています。コンパイルにはいくつかのオプションがあります。しかし、これはツールチェーン固有のものなので、この範囲外です。 –
リアルタイムの考慮事項は、通常、マルチコアとは完全に異なります。 – tadman