リアルタイムアプリケーションをマルチCPUシステム用に最適化する
- 更新日2025-02-20
- 3分で読める
LabVIEW Real-Timeモジュールでは、マルチCPUシステム (マルチコア、マルチプロセッサ、SMPシステムなど) による並列処理を活用できます。
Real-Timeモジュールには、使用可能なCPUにスレッドを割り当てるCPUスケジューラが含まれています。このCPUスケジューラによって、マルチCPUシステムによる並列処理が実現されます。リアルタイムアプリケーションの多くは、プログラムを書き換えなくても、マルチCPUに切り替えるだけでその効果が得られます。また、RTアプリケーションをマルチCPU用に書き換えることで、パフォーマンスが飛躍的に改善される可能性があります。マルチCPUの利点を最大限に活用するリアルタイムシステムを構築するには、RTターゲットVIに並列アーキテクチャまたはパイプラインアーキテクチャを実装する必要があります。
メモ 主にシングルポイントI/Oで構成されているような一部のアプリケーションでは、1つのCPUで低レイテンシを実現できます。
マルチCPUシステムで実行するVIを作成する時は、共有リソースの競合を極力回避する必要があります。マルチCPUシステムの利点は、複数のスレッドを異なるCPUで同時に実行できることです。共有リソースの同時要求は並行した実行処理を妨げるため、マルチCPUシステムのパフォーマンスの利点が損なわれます。
Real-Timeモジュールは、すべての使用可能なCPUにスレッドを自動的に割り当てます。ただし、一部のアプリケーションでは、タイミングストラクチャでのCPU手動割り当ておよびCPUプールを使用してパフォーマンスを最適化できる場合があります。
メモ
- LabVIEW 8.5より前のバージョンで作成されたVIを開くと、タイミングループは自動的にデフォルトCPUで実行されます。このような場合は、タイミングストラクチャでのCPU手動割り当ておよびCPUプールを使用することで、マルチCPUの利点を活用できます。
- マルチCPU RTシステムのパフォーマンスを最適化する方法については、NI Webサイトを参照してください。