タグ

OpenMPに関するmikurassのブックマーク (6)

  • Visual C++でマルチスレッド・プログラミング(4/4) - @IT

    書籍転載 文法からはじめるプログラミング言語Microsoft Visual C++入門 並列処理を行うための基礎知識(Visual C++) ――第13章 並列処理~マルチスレッドプログラミング(後編)―― WINGSプロジェクト 矢吹 太朗(監修 山田 祥寛) 2010/04/28 ■13.5 OpenMP 並列化のためのAPIであるOpenMPを利用して、素数を列挙するプログラムを並列化します。OpenMPを使うと、先に紹介した2つの方法(BoostのthreadとSystem::Threading::Thread)と比べて、とても簡単に並列化を実現できます。 ●13.5.1 OpenMPの準備 OpenMPは並列処理のための標準的なAPIです。Visual C++だけでなく、GCCやIntelのC++コンパイラなど、多くのコンパイラでサポートされています。詳細については、MSDNラ

  • OpenMP と C++: 手間をかけずにマルチスレッドの恩恵を受ける -- MSDN Magazine, 2005 年 10 月

    並列計算の分野では、"並列計算は、将来的には脚光を浴びる。いつになっても将来的に。" などと言われることもあります。これは、ここ数十年においては真実でした。同じようなことはコンピュータ アーキテクチャの業界にもあり、プロセッサ クロックの高速化はすぐに限界に達するといつも言われていますが、実際には、今も高速化が続いています。マルチコア革命は、こうした並列処理分野での楽観と、アーキテクチャ分野での悲観の衝突と言えます。 主要な CPU ベンダは、クロック速度の増加から、マルチコア プロセッサによるオンチップでの並列処理サポートの提供へと方向性を変えています。考え方は単純で、1 つのチップに複数の CPU コアを搭載しようというものです。これにより、1 つのプロセッサに 2 つのコアを搭載して、システムをデュアル プロセッサ コンピュータのように動作させることができます。さらに、1 つのプロセ

    OpenMP と C++: 手間をかけずにマルチスレッドの恩恵を受ける -- MSDN Magazine, 2005 年 10 月
  • OpenMPの実行時ライブラリと並列ループ

    はじめに この連載は、OpenMPを通じて並列処理の考え方をお伝えすることを目的としています。マルチコアCPUが既に普及していますので、今後は並列プログラミングが一般的なものとなり、さまざまな技術が登場するでしょう。その時並列プログラミングの根底に流れる考え方を身に付けられていれば、比較的容易に新技術も習得することができるでしょう。 今回は並列プログラミングに役立つ実行時ライブラリの関数と並列ループについて解説します。この連載で解説に使用するサンプルコードはあくまでもOpenMPの基礎を理解するためのものであり、実務でOpenMPを使用する際にはよく理解してから用途に適したプログラミングを行ってください。 対象読者 筆者が想定している読者はCの基的文法をマスターし、並列化プログラミングに興味を持っている方です。凝ったテクニックを極力さけ、基的な文法さえ分かれば読めるように注意しますので

    OpenMPの実行時ライブラリと並列ループ
  • デュアルコア対応プログラミング OpenMP 編 - マツドサイエンティスト・研究日誌

    先日、「デュアルコア対応プログラミング」のコンテンツを書き込んだ時は、Cなどのコンパイル言語でのデュアルコア対応プログラミングは未完成であった。 今回は、ちゃんとコンパイル言語でデュアルコアに対応し、高速で計算するプログラムを作ることに成功したので、報告する。 課題は、先日と同じく円周率を求める計算だが、デュアルコアを有効に使って計算するプログラムは下のようになった。 #include main() { int i; int n = 1000000000; double s = 0.0; system("date"); #pragma omp parallel for reduction(+:s) for (i = 0;i < n;i++) s += (4.0 / (4 * i + 1) - 4.0 / (4 * i + 3)); printf("%lf\n",s); system("da

    デュアルコア対応プログラミング OpenMP 編 - マツドサイエンティスト・研究日誌
  • OpenMPの基礎構文

    はじめに 昨今マルチコアCPUは一般化し、並列化処理の重要度がどんどん高まってきました。この流れはもう変わらないでしょう。ですから、我々開発者にとって並列処理の知識は絶対に必要なものです。とはいえ、日々の業務をこなしつつ資料が少ない並列化処理を身につけることは大変です。 そこで今回筆者は、並列化処理を実現するOpenMPの入門記事を書くことにしました。OpenMPを選択した理由は、一番効率が求められているのはC/C++プログラマーだと考えたからです。C/C++プログラマーの方々が並列処理を習得するお手伝いができれば幸いです。 なお、この連載で解説に使用するサンプルコードはあくまでもOpenMPの基礎を理解するための便宜的なものであり、実務でOpenMPを使用する際にはよく理解してから用途に適したプログラミングを行ってください。 対象読者 筆者が想定している読者はCの基的文法をマスターし、

    OpenMPの基礎構文
  • OpenMP - OpenGL de プログラミング

    OpenGL de プログラミング トップページページ一覧メンバー編集 OpenMP 最終更新: mikk_ni3_92 2008年05月30日(金) 17:54:19履歴 Tweet 現在地 >> メニュー >> OpenMP メモなど OpenMP wikipediaより、、、 OpenMPは、 並列コンピューティング環境を利用するために用いられる標準化された基盤。 参考・引用など OpenMP C language API Specification 内容 OMP::visual studioの設定 OMP::基編01 OMP::基編02::sections構文 OMP::基編03::single構文 OMP::基編04::単純なループの並列化 OMP::基編05::ループの分割方法 OMP::基編06::2重ループの並列化 サンプルコード OMP::HelloWorld

    OpenMP - OpenGL de プログラミング
  • 1