Visual C++ローカルマルチコアプログラミング

1755 ワード

Visual C++2005版からOpenMP 2.0のマルチコアプログラミングをサポート(2008版と2010版も2.0版のみサポート).Visual C++2010 Beta 1版はローカルC++のPPLをサポート(Parallel Pattern Library、パラレルモードライブラリ)プログラミング.このセクションでは、OpenMPの概要、OpenMPプログラミング技術、OpenMPアプリケーション設計の考慮事項、およびVisual C++のOpenMPマルチコアプログラミングについて説明します.OpenMPのMSDNヘルプドキュメントは、開発ツールと言語Visual StudioVisual C+リファレンス情報Libraries ReferenceOpenMP(英語版).
OpenMP(Open Multi-Processing、オープンマルチプロセッシング)は、共有メモリおよび分散型共有メモリ向けのマルチプロセッサマルチスレッド並列プログラミング言語であり、ガイダンスマルチスレッド、共有メモリパラレルアプリケーションプログラミングインタフェース(API)コンパイラ命令、ライブラリプログラム、および実行時の動作に影響を与える環境変数のセットを含む.OpenMPは移植性に優れ、複数のプログラミング言語C/C++およびFortanなどをサポートする.OpenMPをサポートするコンパイラにはSun Compiler、GNU Compiler、Intel Compiler、Microsoft Visual C++などが含まれる.OpenMPは49種類以上のプラットフォームをサポートし、多くのクラスUNIX系を含むWindows NTシステム(Windows 2000、Windows XP、Windows Vista、Windows 7など)を統括する.penMPに含まれない性質としては、分散型ストレージシステム上に構築されたものではなく、すべての環境下で同じではなく、多くの共有メモリが有効に利用できることを保証できるものではない
コンパイル指導文はコンパイラがプログラムをコンパイルする時、特定の注釈を識別し、これらの特定の注釈にはOpenMPプログラムのいくつかの意味が含まれている.
#pragma omp  [clause[ [,] clause]…] newline 
#pragma(    /  /  /  )     ,omp   
OpenMP;(  /  /  /  )               ,  :
parallel、for、parallel for、section、sections、single、master、critical、flush、ordered atomic;
clause(  )        ,              ;newline    , 
 OpenMP          。  : 
#pragma omp parallel private(var1, var2) shared(var3) {……} 

指導文をコンパイルする機能は、シリアルのプログラムを徐々に並列プログラムに改造し、プログラムを増分更新する目的を達成し、プログラム作成者の一定の負担を減らすことである.