OpenMPは、Linuxシステムを含む複数のプラットフォームをサポートすることができるマルチプロセッサマルチスレッドプログラミング言語です。それを知りましょう。
ログイン
キー構文:
のコードは次の通りである:
#inlcude "omp.h"
の#pragma OMP平行> #pragma omp reduction(+:変数)
#pragma omp critical //lock
{
}
#pragma omp private for parallel (x、y)//各スレッドはx、y変数を独立してコピーします。デフォルトに設定されていない場合はお互いに干渉しません。
#pragma omp parallel forスケジュール//ワークロード全体をn /kブロックに分割してからマルチスレッドスケジューリング
{
#pragma omp section //セクション
の下では、関数間に変数の依存関係はありません。 。 。 。 。 。 。 。 。
#pragma omp section
。 。 。 。 。 。 。 。 。
}
#pragma omp parallel
{
。 。 。 。 。 。 。 ();
#pragma omp master /single //メインスレッドのみが以下の関数にアクセスできることを確認します。違いは、マスターにバリアバリアがなく、最初に完了したシングルスレッドが完了を待つことです。スレッド
{
}
。 。 。 。 。 。 。
} "/p" "p" #pragma omp barrier /nowait //バリアを強制的に設定します/後続の関数が前のマルチスレッドに依存していない場合は待つ必要はありません、nowaitを使用できます
#pragma omp parallel firstprivate(variable)/lastprivate(variable)//各マルチスレッド初期値に対して/割り当てがメインスレッドを使用するメインスレッドに割り当てられている場合はメインスレッドに戻る
OpenMPがあるAPI:
コードは次のとおりです。
int omp_get_num_threads(); //現在使用中のスレッド数を取得します
int omp_get_num_threads(2/3 /...)//使用するスレッド数を設定します。
nt omp_get_thread_num(void); //現在のスレッド番号を返します。
int omp_get_num_procs(void); //使用可能な処理コアの数を返します。 p> ubuntuでは、 "omp.h"ヘッダファイルを追加する必要はありません。コンパイル時に-fopenmpを追加するだけです。
例えば、emacs操作コマンドは次のとおりです。
コードは次のとおりです。
emacs omp.c "/p" "p" #include "stdio.h"
int main()
{
intランク、サイズ;
#pragma omp parallel num_thread(3)private(rank)//num_threadsは、スレッド数を制御するために使用されます。 Br>
//またはomp_set_num_threads(3); "/p" "p" {
rank = omp_get_thread_num();
size = omp_get_num_threads();
printf(現在、%dの%dを使用しています。\\ n'、ランク、サイズ);
}
return 0;
} /p "p" Ctrl + xs
alt + xコンパイル
gcc -fopenmp -o omp omp.c
alt + shift + 1。 /omp
上記はLinuxでのOpenMPマルチスレッドプログラミングの紹介ですこの記事では、主にOpenMPマルチスレッドプログラミングの例を紹介していますが、もっと詳しく知りたい場合はもっと注意を払ってください。それを我慢しなさい。
でファイルシステムのスペースを増減する方法 SolarisはUNIXオペレーティングシステムの派生物であり、仕事上の理由や個人的な理由からファイルシステムスペースを変更することがあります。簡単に理解で
Linuxシステムの文字セットの知識を学び、多くのシステム問題を解決できます。次の小シリーズでは、Linux文字セットを理解するための例を通して、Linuxシステムの文字セットの例を紹介します。修正し
Linuxユーザーはsvnを使っている人がたくさんいますが、今ではsvnはgitほどよくないのでgitに切り替えましたが、svnをgitに置き換えるのは面倒なので、多くのユーザーがgitの作り方を知りたいですsvnと共有して、解決策を見てみましょう。すべてのSubversionブリッジコマンドの
のgitのsvnコマンド
基本的なGitリポジトリにgitのsvnです。
Grep“ ^ 作者”
をインストール ITDBと接触したばかりで、それがPHPオープンソースのIT資産管理システムであることを知っているユーザーもいますが、UbuntuにITDBをインストールする具体的な手順は明らかではあ
Linuxシステムは、プロセス内のスレッド数をどのように表示しますか?
WindowsファイルがUbuntuで文字化けした文字を表示する場合はどうすればいいですか?
Linuxは少量のddos攻撃に対する防御のためのシェルスクリプトの使用方法
sudoコマンドを使用してLinuxシステムでのアクセス許可を増やす方法
LinuxシステムでHTTPロードバランシングシステムを設定する方法
VMwareクローンLinuxのプロンプトeth0は何をすべきか見つけることができませんか?
CentOS open EclipseエラーJNIをロードできませんでした解決方法を共有しましたか?