タグ

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

  • マルチスレッドを安全に実行する

    はじめに この記事は、インドリ氏による『スレッドセーフとインテルTBBのコンテナ』に記載されている誤りを訂正することを目的としています。インドリ氏の記事では、TBBコンテナの紹介に注意するあまり、マルチスレッドプログラミングに潜む危険、その危険を取り除く方法についての記述が正しくありません。記事では、マルチスレッドプログラミングを安全に設計する方法を説明することを目的とします。 記事で用いるコードは、C言語に類似していますが、C言語ではありません。振る舞いを理解していただきやすくするための仮想言語です。実行できる環境はありません。 「競合」という問題 ここに、1つのリンゴがあります。そして、2人の人が、そのリンゴの前にいます。ここで2人に向かって「リンゴをべて良いですよ」とだけ言うと、どうなるでしょうか。お互いに譲り合うか、もしくは取り合いをするでしょう。ここで2人が仲良くリンゴにあ

    マルチスレッドを安全に実行する
  • 「並列化の難しさの議論には間違った部分がある」

    「並列化の難しさの議論には間違った部分がある」 Michael McCool,Intelデベロッパ・プロダクツ・ディビジョン,パフォーマンス&プロダクティビティ・ライブラリーズ,ソフトウエア・アーキテクト Intel of Canadaでデベロッパ・プロダクツ・ディビジョン,パフォーマンス&プロダクティビティ・ライブラリーズのソフトウエア・アーキテクトを勤めるMichael McCool氏が,来日して日経ソフトウエアの取材に応じた。氏は米Intelが2009年8月に買収した加RapidMindでチーフ・サイエンティストを勤めてきた人物で,University of Waterlooで教壇にも立っている。Intelが2010年に投入予定の並列プログラミング製品「Ct」について,その意義を語った。 並列プログラミング(パラレル・プログラミング)は難しい。 並列プログラミングの難しさには,当の

    「並列化の難しさの議論には間違った部分がある」
  • C++: インテル スレッディング・ビルディング・ブロックを使って簡単に並列化

    最近はマルチコアCPUが当たり前になってきて、それを使って簡単に並列処理プログラミングができないか、頭を悩ませていたのだが、インテルのスレッディング・ビルディング・ブロック(Threading Building Blocks, TBB)が非常に良くできた技術であることを知った。 これまではMPIやら、OpenMPやら、CUDAやらをちょろちょろ手を出しつつも、どれも正直面倒だった。趣味のプログラミングではそれでも楽しいからいいのだけど、単にある処理を並列化で高速にしたいだけの場合、並列処理に関わる面倒な手続きなどは極力省きたい。また、どうしても泥臭いやり方になることが多い。例えば、Cでは簡単に書けるのだけど、C++の機能を使った処理がやりづらかったりね。 そこで、TBBが登場する。マルチコアやメニーコアプラットフォーム上での利用となるが、最近では一般のノートPCでさえマルチコアCPUが使わ

    C++: インテル スレッディング・ビルディング・ブロックを使って簡単に並列化
  • 1