タグ

並列に関するhackedのブックマーク (3)

  • マルチコア危機:ScalaとErlangの対立

    ブロゴスフィアでは最近Scala対Erlangの議論がややヒートし続けている。マルチコアの世界(参考記事)が訪れようとしている今、いかにマルチコア危機を解決するかが問題になっている。ScalaとErlangはその解決法たらんとしている言語だが、少し違いがある。それぞれのアプローチの長所短所はなんだろうか? 問題 ムーアの法則はもう通用しない。かつてのようなクロック周波数の向上(リンク)は見込めず、かわりにコアの数を増やそうとしている。今の時代、あなたのノートPCでさえも2つコアを搭載していることだろう。 2つ以上のコアを有効に使うには、アプリケーションが並列処理を意識してないといけない。もしあなたの顧客が8コアのマシンを買ったとしたら、たとえそれをあるアプリケーションの専用マシンにしたとしても、そのアプリケーションがCPU性能の12%しか使えなくてもおかしくない、とあなたは顧客にどうにかし

    マルチコア危機:ScalaとErlangの対立
  • 並列アプリケーションを作ってみよう | OSDN Magazine

    インテルのCoreシリーズCPUが登場して以来、マルチコアCPUは爆発的に普及している。現在では比較的低価格なCPUでも複数のコアを搭載するようになり、現在販売されているPCのほとんどはマルチコアに対応しているといっても過言ではない。しかし、まだマルチコアCPUの性能を生かす、並列処理を行っているアプリケーションは多くない。 並列処理は、一般には実装が難しい、という印象があるようだ。確かにスレッドを駆使して処理を並列化する場合、スレッドの管理やスレッド毎の連携など、考慮しなければならないことが増え面倒ではある。しかし、プログラムを並列化するための言語規格「OpenMP」や、C++用の並列化ライブラリ「Threading Building Blocks」といった並列化支援技術を利用することで、プログラムの並列化へのハードルは大幅に低くなる。また、インテルの開発製品「Parallel Stud

    並列アプリケーションを作ってみよう | OSDN Magazine
  • OpenMP 入門

    OpenMP は共有メモリ並列プログラミングの標準 API である。ここでは C/C++ 版を紹介する。Fortran 版もある。 OpenMP は自動並列化ではない。依存性の分析と解決はプログラマに任されている。使い方を間違えば、当然正しくない結果を出す。 #include <omp.h> OpenMP を使うときにはインクルードする。 _OPENMP OpenMP コンパイラが define するマクロ。 #pragma omp parallel 節 次の行から始まるブロックを並列に(重複して)実行する。 スレッドの数は num_threads 節か、omp_set_num_threads 関数か、環境変数 OMP_NUM_THREADS で指定する。 Parallel 指示行の時点で既に定義されている変数と、ブロック内でもstatic 宣言されている変数は

  • 1