Sun Visual WorkShop C++ の概要

多重処理とマルチスレッド

多重処理 (MP) は、共用メモリーを持つ密結合型マルチ CPU システムをサポートするハードウェア技術です。マルチ CPU システムを利用すれば、アプリケーションのパフォーマンスをさらに向上させることができます。

マルチスレッド (MT) は、シングルプロセッサとマルチプロセッサの両システムで並列アプリケーションの開発を可能にするソフトウェア技術です。独立した各実行スレッドは、マルチプロセッサシステムの複数の CPU 上でスケジュールされますが、メモリーやファイルなどの資源は共有しています。こうした実行スレッドを使用すると、ひとつのアプリケーションの実行を並列処理で行えるようになります。スレッドは、オペレーティングシステムが提供する相互排他ロック (mutex ロック) を使用して資源を共有し、同期をとり、相互通信を行います。多重処理とマルチスレッドを組み合わせて使用すると、アプリケーションのパフォーマンスの向上を実感できる、拡張性に富んだソリューションが得られます。

並列性の活用

アプリケーションの並列処理を行うと、新しい多重処理システムとマルチスレッド化されたオペレーティング環境によって、パフォーマンス、応答性、柔軟性を向上させることができます。スレッド化には次の効果があります。

マルチスレッド開発ツールによるエラー検出の高速化

マルチスレッド開発ツールを使用すると、C++ コンパイラ (および多重処理 C コンパイラ) の機能を拡張し、多重処理を最適化することができます。多重処理とマルチスレッド開発のためのツールセットには、Sun WorkShop デバッガと dbx のマルチスレッド化拡張機能の他に、「ロック lint」、「ループツール」という 2 つの補助ツールが含まれています。

ロック lint による矛盾したロックの検索

相互排他ロック (mutex ロック) と読み取り・書き込みロックの使用状況を静的に解析するには、ロック lint を使用します。このツールで、矛盾したロックの使用を検索すると、データの競合とデッドロックの一般的な原因を検出することができます。

ループ情報の解析

多重処理 C++ コンパイラや C コンパイラと併せて、パフォーマンス解析ツール -- ループツールとループレポート -- を利用することができます。コンパイラは、ループが問題なく並列化でき、この処理が効果的であると判断すると、自動的に並列化処理を行います。ループツールには、次の機能があります。

ループレポートのコマンド行ツールを使用すると、全ループの実行時一覧表が作成されます。この一覧表には、ループが並列化されなかった理由を示すコンパイラヒントも含まれています。