タグ

threadに関するma38suのブックマーク (6)

  • 2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来

    PFI社内セミナー 2009年12月10日 20:00-21:00(予定) GPUコンピューティングの現状とスーパーコンピューティングの未来 発表者: 村主 崇行(プリファードインフラストラクチャー 研究開発部門・京都大学大学院 物理学第二教室) セミナー録画URL: http://www.ustream.tv/recorded/2837689 このスライドは、発表後にみなさまからいただいた貴重な意見をもとに改訂した版です。発表時点での版はこちら: http://www.slideshare.net/pfi/20091210-gpu-2735685Read less

    2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
    ma38su
    ma38su 2009/12/11
    宇宙線なぁ。
  • おさかなラボ - Coroでより賢い非同期クローラを作る

    前回のエントリでは簡単なクローラの作り方を説明した。しかしこのクローラには欠点があり、取得したいURLが何千何万とある場合、一度にhttp_getが走ってしまい、リソースを使い切ったり同じサーバーへのアクセスを待つ間にタイムアウトしたりと都合が悪かった。そこで今回はAnyEventに加えCoroを使うことにより、並列を使ってリソースへの同時アクセス制限を行うクローラの書き方を解説する。 これは前回のエントリの改良版になるので、初めてこれを読む方は当該エントリを先に読んで頂きたい。 まず、前回はAnyEventを使い、condvarとsend-recvを使ってイベントの監視をしていたが、Coroと同時に使う場合これでは都合が悪い。イベントループを回す場合、一般的にAnyEventはrecvを、Coroはjoinを使うが、これらはどちらもイベントループが終わるまでブロックするのでどちらかし

  • TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと

    TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと 目次 この文書について C10K 問題 関連サイト まず読むべき I/O フレームワーク I/O 戦略 1. 各スレッドが複数のクライアントを受け付ける. そしてノンブロッキング I/O と レベル・トリガ型の完了通知を利用する. 伝統的な select() 伝統的な poll() /dev/poll kqueue() 2. 各スレッドが複数のクライアントを受け付ける. そしてノンブロッキング I/O と 変更型の完了通知(readiness change notification)を利用する. kqueue() epoll リアルタイム・シグナル fd 単位のシグナル (Signal-per-fd)

  • ネットワークプログラムのI/O戦略 - sdyuki-devel

    図解求む。 以下「プロトコル処理」と「メッセージ処理」を分けて扱っているが、この差が顕著に出るのは全文検索エンジンや非同期ジョブサーバーなど、小さなメッセージで重い処理をするタイプ。ストリーム指向のプロトコルの場合は「プロトコル処理」を「ストリーム処理」に置き換えるといいかもしれない。 シングルスレッド・イベント駆動 コネクションN:スレッド1。epoll/kqueue/select を1つ使ってイベントループを作る。 マルチコアCPUでスケールしないので、サーバーでは今時このモデルは流行らない。 クライアントで非同期なメッセージングをやりたい場合はこのモデルを使える: サーバーにメッセージを送信 イベントハンドラを登録;このときイベントハンドラのポインタを取っておく イベントハンドラ->フラグ がONになるまでイベントループを回す イベントハンドラ->結果 を返す 1コネクション1スレッ

    ネットワークプログラムのI/O戦略 - sdyuki-devel
  • recursive mutex - hidemonのブログ

    mutexはスレッド間の排他処理をするための機構だが,一般的なthreadライブラリのデフォルトのmutexには大きな問題がある.あるmutexを既にlockしているthreadが再度同じmutexをlockしようとするとブロックしてしまうのだ.たとえば,thread bufferの例で,emptyを判定する部分を別メソッドにして,こちらもlockをかけるように書き直してみる. class buffer { list<int> queue; boost::condition_variable cond; boost::mutex mut; public: bool empty() { boost::lock_guard<boost::recursive_mutex> lock(mut); return queue.empty(); } ... int pop() throw(out_of_

    recursive mutex - hidemonのブログ
    ma38su
    ma38su 2009/02/14
    JavaとC++のスレッドの違い
  • Worker Thread - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    デザインパターン(マルチスレッド)まとめ スレッドを起動する時間をケチるのと、スレッド数の管理を行うパターン。 以下は増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編のサンプルを Boost.Thread を使って書いたコード。 これ、request じゃなくて boost::function0 にすれば汎用的な worker_thread クラスが作れそう。 というか namespace worker_thread と class worker_thread で同じ名前なのにちゃんとコンパイルできるのには驚いた。 main.cpp #include <boost/thread.hpp> #include <boost/shared_ptr.hpp> #include "channel.h" #include "client_thread.h" namespace mt

    Worker Thread - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • 1