Please select the category that most closely reflects your concern about the presentation, so that we can review it and determine whether it violates our Terms of Use or isn't appropriate for all viewers.
Javaに限った話ではないのだけど、Javaで並列加算が気軽にできるようになったので、気に留めておいたほうがいい話。 まず、次のようなコードを動かしてみます。 public static void main(String[] args){ double[] data = { 1.234E80, -1.234E80, 2, 3}; System.out.println(Arrays.stream(data).sum()); System.out.println(Arrays.stream(data).parallel().sum()); } 1.234×10^80と-1.234×10^80という、桁が大きくて符号の違う数を並べて、そのあとに2と3という1桁の数値を置いています。 これらを加算すると、1.234×10^80と-1.234×10^80は符号が違うだけなので、当然結果は0になります
® OpenMP* / 1 ® OpenMP* 1 1 1 ......................................................................... 2 2 ........................ 3 3 ....................................................... 5 4 ............................... 7 5 ............................ 9 5.1 ........................................................................ 9 5.2 OpenMP* API ............................ 13 6 .......
OpenMPは複数のCPU(複数コアを含む)を持った計算機上での並列化に威力を発揮する。 OpenMPを使う最大の利点は、OpenMPに対応したコンパイラであれば、非常に簡単に並列化できる点である。 現在、gcc、Visual C++、およびIntelコンパイラなど主要なコンパイラはOpenMPに対応している。 習得も他の並列化技法に比べて比較的容易である。 なお、速度を最優先にする場合、単一コンピュータ上で動かした場合でも、メモリのローカリティのためかOpenMPよりMPIの方が効率のよいことが多い。MPIに関してはこちらを参照。 なお、インテルがOpenMP初心者向けに非常にわかりやすい文書を公開している。 OpenMPプログラムのコンパイル OpenMPの各種関数を使わない場合、#pragma ompで始まる指示をソースコード内に書き込み、下記のコンパイルスイッチをつけてコンパイルす
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く