手動でCPUを割り当てる
- 更新日2025-08-27
- 3分で読める
LabVIEWでは、並行実行機能またはパイプライン処理を使用して、マルチCPUシステム (マルチコア、マルチプロセッサ、SMPシステム) を簡単に使用することができます。場合によっては、特定のスレッドを特定のプロセッサに手動で割り当てることにより、より効率的にCPUを利用できる場合もあります。
(Real-Time、Windows) タイミングループを使用することでCPU割り当てを手動で制御することができます。たとえば、2つのCPUでシステム上で並行して実行中のタイミングループX、Y、Zを持つアプリケーションを想定します。タイミングループは、それぞれ、実行に100ミリ秒、100ミリ秒、200ミリ秒かかります。以下の図に示すとおり、タイミングループがすべてデフォルトの優先度に設定されている場合、CPUのスケジューラでタイミングループXおよびZをあるCPUで実行し、タイミングループYを別のCPUで実行するように割り当てると、結果として実行時間の合計は300ミリ秒となります。
以下のブロックダイアグラムに示すとおり、手動でタイミングループXおよびYをあるCPUに割り当て、タイミングループZを別のCPUに割り当てることで、このVIを最適化することも可能です。
この場合、以下の図に示すとおり、手動のCPU割り当ては合計の実行時間が200ミリ秒に短縮されます。
メモ Real-Timeモジュールは、デフォルトのプロセッサ(CPU 0)でシステムスレッドを実行します。決定性に優れたタイミングループをデフォルトのCPUではなく専用のCPUに割り当てると、ジッタを減少させることができます。また、手動CPU割り当ての別のセットを予約している間に、一連のCPUで自動ロードバランス調整を使用することもできます。Real-TimeモジュールCPUスケジューラは、システムスレッドとは別にタイミングストラクチャスレッドを処理します。デフォルトでは、両方のタイプのスレッドに使用するすべてのCPUに対して、自動ロードバランス調整を行います。各タイプのスレッドの自動ロードバランス調整に使用可能な一連のCPUを指定する詳細については、NIのWebサイトを参照してください。