タグ

concurrentに関するsiroccoのブックマーク (3)

  • 並行と並列について-並行コンピューティング技法-を読んで - M-Tea

    以前FITEA定期勉強会で、並行と並列の違いについて議論になりました。 具体的な議論のポイントは 「並行」は時分割でスレッドを処理、「並列」はマルチコアで処理 「並行」は概念的に違うものを同時に処理、「並列」は同じ処理を分割して処理 というポイントで、簡単に検索してみたところ、両主張ともに見受けられ、その場では深く追求しませんでした。(別議論のなかのサブトピックであったので、時間的な都合もあり) 今回たまたま、以下のを読んでみて色々考えたので、それを記載してみます。 【送料無料】並行コンピューティング技法 価格:3,360円(税込、送料別) コンピュータサイエンス的な「並行」と「並列」 「並行コンピューティング技法」の1.1.2「並行と並列:その違いは?」に以下のようにあった。 システムが複数の動作(処理の流れ)を同時に実行状態(in progress)に保てる機能を備えている場合を 並

    sirocco
    sirocco 2014/09/15
     ●実行状態を複数保てるなら、並行(concurrent) ●複数の動作を同時に出来るなら、並列(parallel) ●並列は並行の中に含まれる。
  • Concurrent HaskellおよびParallel Haskell

    GHCは、並行プログラミングおよび並列プログラミングに対応するための、Haskellへの大規模な拡張をいくつか実装している。まず用語をはっきりさせておこう。 並列性(parallelism)とは、実行性能の向上を目的として、Haskellプログラムを複数のプロセッサ上で走らせることである。理想的には、これは不可視に、意味を変更することなく為されるべきである。 並行性(concurrency)とは、それぞれIOを行う複数のスレッドを使ってプログラムを実装することである。確かに並行Haskellプログラムは並列な機械上で走らせることができるが、並行性を使うのは、第一目的として実行性能を得るためではなく、それが当該プログラムを書くための最も単純で最も直接的な方法だからである。スレッドは入出力を行うので、プログラムの意味は必然的に非決定的なものになる。

    sirocco
    sirocco 2013/12/08
    Concurrent HaskellおよびParallel Haskell。 並列性(parallelism)とは、複数のプロセッサ上で走らせること。並行性(concurrency)とは、それぞれIOを行う複数のスレッドを使ってプログラムを実装すること。
  • 中里一日記: ブライアン・ゲーツ、ダグ・リーほか『Java並行処理プログラミング』(SoftBank Creative)

    ブライアン・ゲーツ、ダグ・リーほか『Java並行処理プログラミング』(SoftBank Creative) 結論: すべてのJavaプログラマはただちに書を読むべきだ。読む時間がないのなら、あなたにはコードを書く資格がない。 理由: ・安い Javaの並行処理を知るために、私は莫大な授業料を支払った。「synchronizedやvolatileを使ってはいけない」くらいの分別は最初からあったが、それ以上のことはなにも知らなかった。 並行処理には試行錯誤は役に立たない。テストは無力だ。正しいコードを書くか、それとも爆弾を作るか、どちらかだ。爆弾を作れば高くつく。 書には、私が莫大な授業料を支払って知ったことがすべて書いてある。 ・薄い 458ページは厚いと思えるかもしれないが、それは人間の頭が破壊的代入にしがみついているせいだ。破壊的代入と並行処理を両立させたいと人間が願う以上、この程度

  • 1