タグ

並行性に関するakaneharaのブックマーク (9)

  • Big Sky :: golang の channel を使ったテクニックあれこれ

    golang の channel は他の言語に見ない独特のパラダイムを開発者に提供します。 単純にスレッド間でメッセージングをするだけでもC言語で書けばそこそこの量になったり、慣れていない人であればどう実装すればいいか分からないなんて事もあったと思います。しかし golanggoroutine/channel は、やっている内容の割にとても容易にスレッド間通信やキューイング、処理の受け待ち等を実装できる様になっています。尚、channel をどの様に適用したら良いかについては以下を参照下さい。 Big Sky :: Golang の channel の使い所 golang の特徴と言えば goroutine と channel ですが、その使いどころに悩む人もおられる様です。 goroutine は非同期に実行される処理、channel はその grout... http://mat

    Big Sky :: golang の channel を使ったテクニックあれこれ
  • 並行処理の統一モデルへの動向 松井和人 NPO法人 CSPコンソーシアム matsui@csp-consortium.org 24th/Nov/2012 第 10 回 CSP 研究会 Kazuto MATSUI はじめに コンピュータ業界はオブジェクト指向を基に関数型��

    並行処理の統一モデルへの動向 松井和人 NPO法人 CSPコンソーシアム matsui@csp-consortium.org 24th/Nov/2012 第 10 回 CSP 研究会 Kazuto MATSUI はじめに コンピュータ業界はオブジェクト指向を基に関数型言語に移行する動きにあります。 更に並行処理はマルチスレッドから、Actorモデルに移行しようとしています。 Actorの利点だけがクローズアップされて、全て解決のような風潮があります。 そこで、Actor, Agent, CSPについて調べてみました。 CSP/occam コミュニティ(http://www.wotug.org/) が目指しているのは並行処理の Unification[1]であり、何処まで達成できているのか探ってみました。 第 10 回 CSP 研究会 Kazuto MATSUI 1 日経コンピュータ 業務系

  • CSPの紹介

    CSPモデルの優位性 産業技術総合研究所 情報技術研究部門 磯部祥尚 1 第9回CSP研究会(2012年3月17日) 0:40 講演内容 2 1. CSPモデルの特徴  CSPモデルとは?  同期型メッセージパッシング通信  イベント駆動  通信相手(チャネル)の自動選択 2. CSPモデルの実装  ライブラリ/言語  CSPモデルの実装例  ローカル/ネットワークチャネル 3. CSPモデルの検証  CSPモデルの記述例  検証ツール  振舞いの等しさ 4. CSPモデルベース開発  並列プログラミングの難しさ  CSPによるモデル化、検証、実装  まとめ 理論 CSP 検証 FDR 実装 JCSP 1:20 CSPモデルの特徴 3  CSPモデルとは?  同期型メッセージパッシング通信  イベント駆動  通信相手(チャネル)の自動選択 1:20 P1

  • Linuxのしくみを学ぶ - プロセス管理とスケジューリング

    プロセスとマルチタスクの実現 Linuxは、多数のプロセスを同時に動作させる事が出来るマルチタスク環境を実現しています。 psコマンドやtopコマンドを実行しプロセスのリストを取得すると多数のプロセスが実行中である事がわかります。 また、これらのプロセス全てが同時に平行して動作しているように見えます。 これはどのようにして実現されているのでしょうか。 一般的に、1つのプロセッサは同時に複数のプログラムを実行する事が出来ません1。 そこで、マルチタスクをサポートするOSでは複数のプロセスを非常に短い時間ずつ切り替えながら実行する事で、体感上は複数のプロセスが同時に実行されているように見せています(図1)。 このような仕組みを実現する為にどんな機能がカーネルへ実装されているのか順に見ていきましょう。 プロセスの切り替え CPU上で処理中のデータを失う事なく現在のプロセスから別のプロセスに切り替

  • AnyEvent::ForkManager - A simple parallel processing fork manager with AnyEvent - metacpan.org

  • イベントはスレッドに比べて何故ダメなのか (Why Events Are A Bad Idea) | yunabe.jp

    並行処理をプログラミングする方法は大別すると、 スレッドなどを利用した同期処理的な書き方と イベントを利用した非同期処理的な書き方があります (イベントループ)。 最近 C10K問題 が有名になったことや、 Node.js が流行っていて Node.js のメリットとしてイベントモデルであるため C10Kが解決されるというのが上げられていたりして、 イベントモデルのスレッドに対する優位性が注目されることが多いように思います。 しかし個人的な経験として、ある程度以上複雑なプログラムを書く場合、 イベントモデルで非同期処理を多用してプログラムを書くとスレッドで同期処理を使ってプログラムを書いた場合に比べてプログラムの可読性・保守性が著しく悪くなり、 バグが発生しやすくなるように感じます。 しかも並行処理で起こるバグは特定の処理が特定の順序で実行された場合のみ起こるようなことが多く、 再現性が低

  • 食事する哲学者の問題 - Wikipedia

    事する哲学者の問題(しょくじするてつがくしゃのもんだい、Dining Philosophers Problem)とは、並列処理に関する問題を一般化した例である。古典的なマルチプロセスの同期(排他制御)問題であり、大学レベルの計算機科学課程にはほぼ確実に含まれている。 1965年、エドガー・ダイクストラは5台のコンピュータが5台のテープ装置に競合アクセスするという同期問題を提示した。間もなく、この問題はアントニー・ホーアによって「事する哲学者の問題」に変形して語られることとなった[1][2][3]。 問題[編集] 5人の哲学者が事したり、考え事をしたりしている。彼らの前には、真ん中にスパゲッティの入った大きなボウルが置かれた丸い卓がある。その卓には5枚の皿が置かれ、皿と皿の間にフォークが1ずつ置かれている。(近年では、器を「フォーク」ではなく「箸」として紹介する例も見られる[4

    食事する哲学者の問題 - Wikipedia
  • 並列プログラミングのエキスパートのようになるには – パート 1: 並行性 (コンカレンシー) と並列性 (パラレリズム) | iSUS

    この記事は、インテル® ソフトウェア・ネットワークに掲載されている「How to sound like a Parallel Programming Expert Part 1: Introducing concurrency and parallelism」(http://software.intel.com/en-us/articles/how-to-sound-like-a-parallel-programming-expert-part-1-introducing-concurrency-and-parallelism/) の日語参考訳です。 並列プログラミングのエキスパートのようになるには パート1 パート2 パート3 パート4 並列コンピューティングの時代がやってきました。現に、これを書いているのはデュアルコアのラップトップです。先日、息子が買ったゲーム機には 9 コアが、そ

    並列プログラミングのエキスパートのようになるには – パート 1: 並行性 (コンカレンシー) と並列性 (パラレリズム) | iSUS
  • Go の並行処理 - Block Rockin’ Codes

    intro 先日の Go のカンファレンス GoCon で、 Go の並行処理周りについて発表させて頂きました。 Go Conference 2013 spring - connpass 具体的には Goroutine や Channel の話ですが、これらの機能は結構面白くて、いじって遊んでるだけでもわくわくします。 Go の並行処理は、設計方針がわりと特殊だと思うのですが、設計がシンプルなので分かるとそこまで難しくはないです。 (使いこなすのは、経験が必要そうですが) 今回話すにあたって色々調べましたが、発表時間の都合上省いたものもあるし、質疑応答で聞かれて応えられなかったこともあるので、 ここでまとめて置こうと思います。 発表資料 今回の発表資料はこちらです。 このブログの内容は、これをベースにします。 http://jxck.node-ninja.com/slides/gocon-

    Go の並行処理 - Block Rockin’ Codes
  • 1