ブックマーク / codezine.jp (9)

  • インテル Parallel Studioを使って 並列化プログラミングを試してみた

    CPUのマルチコア化に伴い、開発者にも「並列プログラミング」が必要とされる時代になってきています。5月下旬にインテルがリリースした「インテル Parallel Studio」を利用すると、使い慣れたVisual Studioの開発環境で、並列化プログラミングの様々なサポートを得ることができます。稿では、その概要やインストール方法、テスト結果などについて解説します。 はじめに IT業界はよく日進月歩だと言われます。確かに我々開発者を取り巻く環境は日々変化し、新しいテクノロジーが毎月のように発表されています。しかし、ある程度経験を積んだ開発者は、そのような変化は表面上のものだと考えます。 プログラミング言語は進化し、どんどん新しい機能が追加されてゆき、それに伴い新しい開発環境が登場します。ですが、冷静に考えてみればそう慌てることはありません。昨今騒がれている言語の新しい機能も大半が古くからあ

    インテル Parallel Studioを使って 並列化プログラミングを試してみた
    MSK_K
    MSK_K 2010/04/22
    この記事より、こっちをお勧め→ http://gihyo.jp/dev/column/01/prog/2010/0415
  • 仮想ネットワーク実装でTCP/IPを学ぼう(5) ― アプリケーション層の勘所

    はじめに この連載では仮想的なLANを実装することにより、目に見えないTCP/IPプロトコル群を、手を動かして目で実際に確認しながら習得することを目的としています。 ただし、TCP/IPのすべてを解説するのは分量上不可能ですし、余計に読者を混乱させてしまいますので、筆者が重要と考えている部分だけ解説します。またサンプルコードや記事に出てくるIPアドレスMACアドレスについては架空のものであり、実際にそのIPアドレスを取得した組織などを意識したものではありません。あらかじめご了承ください。 今回はアプリケーション層のプロトコルとそれに関係する事柄について解説します。 アプリケーション層の概要 この層の役割は、IPアドレスと名前のマッピング・電子メール・ファイル転送・時刻同期などのTCP/IPアプリケーションの仕様を規定することです。仕様を決定することにより、異なるプラットフォームでも同様

    仮想ネットワーク実装でTCP/IPを学ぼう(5) ― アプリケーション層の勘所
    MSK_K
    MSK_K 2010/04/21
    社会人としての常識(間違いの指摘を確認する)がない著者による、社会人としての常識の要求。/読者に「事実に基づいた指摘」をするように要求する著者は、何に基づいて記事を書いているのだろう?
  • インテルTBBによる選択ソートの高速化

    再帰的なタスク実行 ソート対象を前半と後半の2つに分割し、それぞれをソートすることで高速化できました。ならば前半/後半をソートする際、それぞれをさらに2分割すればもっと速くなるでしょうね。これを繰り返せば少ない要素群をソートする多数のタスクが作られることになりますが、論理スレッド数が増えるわけではないのでスレッドの切り替えに要するオーバヘッドは気にしなくて済みそうです。parallel_invokeを再帰的に使いましょう。 class extremely_sort : public sort_base { public: typedef std::vector<std::string>::difference_type difference_type; extremely_sort(iterator first, iterator last) : sort_base(first,last)

    インテルTBBによる選択ソートの高速化
    MSK_K
    MSK_K 2010/04/02
    説明の仕方が面白い。3ページ目最高!
  • インテルTBBから学ぶループの並列化

    はじめに この連載では、並列処理を高度に抽象化したインテルTBBを通じて、並列化の考え方を取得することを目的としています。今後、並列化は当たり前のものとなり、さまざまな形でサポートされるようになります。並列化処理の根底に流れる考え方を身につければ、その変化に対応できます。 今回はインテルTBBのアルゴリズムテンプレートとループの並列化について解説します。この連載のサンプルはあくまでもインテルTBBの使い方を説明するものであり、実務を特別に意識したものではありません。その点をご理解下さい。 対象読者 筆者が想定している読者はC++の基的文法を理解し、並列化プログラミングに興味を持っている方です。高度なC++テクニックを極力さけ、基的な文法さえ分かれば読めるように極力注意しますので、並列化に興味を持っている方はぜひこの連載に目を通して下さい。 必要な環境 C++コンパイラが必要です。お持ち

    インテルTBBから学ぶループの並列化
    MSK_K
    MSK_K 2010/03/08
    並列化を知らずに並列化を語る著者
  • 並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」

    #include <stdlib.h> #include <time.h> #include <limits.h> #include <iostream> #include <windows.h> #include <winnt.h> #include <tchar.h> #include <StrSafe.h> #include <process.h> using namespace std; int stockCount = 10; //在庫数 //商品の生産を行う関数 DWORD WINAPI Producer( PVOID pvParam ) { //増加数を読み出す int point = PtrToUlong(pvParam); //処理を行うために在庫数を読み出す //※DBかファイルから値を読み出していると仮定してください int tmp = stockCount; //商

    並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」
    MSK_K
    MSK_K 2010/03/08
    販社の回答に因縁を付ける著者
  • WinSock2を使用したパケットモニターの作成

    はじめに 稿では、WinSockでパケットモニターを作成し、WindowsRAWソケットを扱う方法を紹介します。また、GUIプログラムを作成する場合に必須となる「非ブロッキングモード」や、すべてのパケットを取得するための「プロミスキャスモード」についても触れます。 取得したパケットをプロトコルにしたがって表示する処理については、WinPcapを使用したパケットモニターの作成で解説しましたので、詳しくはそちらを参考にしてください。 対象読者 WindowsC++を使用してネットワーク関連のプログラムを作成される方。 パケットモニターの作成に興味をお持ちの方。 必要な環境 サンプルプログラムは、Windows 2000以降のOSで動作します。 サンプルコードは、C++ Builder 6およびVisual C++ .NET 2003でコンパイルが可能です。 WinSockのRAWソケット

    WinSock2を使用したパケットモニターの作成
    MSK_K
    MSK_K 2010/03/02
    ネットワークアダプターを選択する方法
  • スレッドセーフとインテルTBBのコンテナ

    はじめに この連載では、並列処理を高度に抽象化したインテルTBBを通じて、並列化の考え方を取得することを目的としています。今後、並列化は当たり前のものとなり、さまざまな形でサポートされるようになります。並列化処理の根底に流れる考え方を身につければ、その変化に対応できます。 今回はスレッドセーフおよびインテルTBBに用意されている4個のコンテナの使い方と注意するべき点について解説します。この連載のサンプルはあくまでもインテルTBBの使い方を説明するものであり、実務を特別に意識したものではありません。その点をご理解ください。 対象読者 筆者が想定している読者はC++の基的文法を理解し、並列化プログラミングに興味を持っている方です。高度なC++テクニックを極力さけ、基的な文法さえ分かれば読めるように極力注意しますので、並列化に興味を持っている方はぜひこの連載に目を通してください。 必要な環境

    スレッドセーフとインテルTBBのコンテナ
    MSK_K
    MSK_K 2010/02/25
    コメントは「解説」なので必読/http://msdn.microsoft.com/ja-jp/library/c9ceah3b.aspx iostrem はスレッドセーフ。
  • SEXYHOOKで始めるテスト とある関数の接合部(1)

    はじめに テストを書いていると、一時的に関数の挙動を書き換えたいときがあります。 time()がハードコードされている関数をデバッグしたい時や、稀にしか失敗しないAPIの失敗をエミュレーションしたい時などです。これらはテストの自動化の妨げになっていました。 拙作のSEXYHOOKを利用すると、一時的に関数の挙動を書き換え、失敗を返すことが可能になります。 稿では、SEXYHOOKの使い方について説明します。 対象読者 C++でソフトの開発を行い、テストを書きたいエンジニア SEXYHOOKはC++で使うことを想定しています。 必要な環境 Windows Microsoft Visual C++ 6/2003/2005/2008 Linux GCC 4.x(推奨) / 3.x 現状では32bitバージョンのみのサポートになります。SEXYHOOKはデバッグビルドのみで利用できます。 SEX

    SEXYHOOKで始めるテスト とある関数の接合部(1)
    MSK_K
    MSK_K 2010/02/24
    何が SEXY 何だろう?気になる気になる
  • OpenMPの実行時ライブラリと並列ループ

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

    OpenMPの実行時ライブラリと並列ループ
    MSK_K
    MSK_K 2010/02/01
    いつも通りいい加減な記事なので、コメントも読むべし。最後のコード、num_threadsで、スレッドの数を増やすとおもしろいことになる。
  • 1