前から買おうとは思っていたが、読む時間ないなぁと手を出さずにいた「並行コンピューティング技法」をたまたま立ち寄った本屋にて発見し、思い切って購入。著者についてこちらの初版は2009年で、すでに10年以上経過していることになる(早いなぁ)。著者のClayさんの現職場はIntelで2020年時点で16年の勤務経歴があり、20年以上に渡りマルチコア/マルチスレッドのアルゴリズムなどのコード実装に関わっている大ベテランだ。計算機科学のPhDでもあり、要はめちゃくちゃ強い人。clay-breshears全体の構成と本書から得られる知識について本書を詳細に読み始める前に、最初に見出しに目を通して全体の構成がどのようになっているかを考察する。その上で自分が、今から読む本から何の情報を得たいのか、何が分かっていないかをリスト化しておき、頭の中か、紙などにメモしておく。そのためにも、まずは、見出しから考察した本書の全体の構造を考えてみる。本書は第1章から始まり、250程のページを経由して第11章までの構成を持つ。第11章までの構成をざっくりと4つに縮約すると以下のようになった。1.基礎知識:(並列と並行って何が違うの。スレッドとは、分散メモリとは..etc)2.並行プログラミングの実装における諸注意・考え方3.実践(ソートアルゴリズムなどを並行アルゴリズムに書き換え)4.並行プログラミングでのデバッグ、検証方法についてなるほど。検証する上でのポイント、考え方が身に付くようだ。現段階で自分の中に持ち合わせていない知識は1.基礎知識以外のほとんど。よって、この書籍を読み通すことで、今持っている並行/配列処理プロセス/スレッド/マルチスレッド/マルチコア分散処理/ノード分散メモリ/共通メモリソートアルゴリズムなどといった基礎的な単語レベルの知識をどのように設計、実装に転用するかを理解するのが第一目標。自分の持っている知識が著者の認識と正しいかを確認するため。「並行」と「並列」の違いって確かによく分からない(説明出来ない)ので読んでみる。加えて第1章から得たい知識を頭の中に図化したものを書き出してみた。この図を完成させるように第1章を読み進めた第1章のまとめ並行と並列の違いまず並行と並列という単語の意味がどのように違うのか。自分は並列処理というのはA,B,C,Dという異なる処理を同時に実行させるもので、並行処理はA,A,A,Aという同じ処理を同時に実行させるものだと思っていたが、実際は大きく違っていた。並列というようになる。並行は並列を内包している。書籍から「並行・並列」の項目を引用する並行とは複数の動作を実行可能状態に保てる状態を備えていること並列とは複数の動作を同時に実行できる場合のこと自分の持っていた知識とは全然違っていた。100人に分身が完了した状態スレッド化の4ステップめちゃシンプル。関数レベル、もしくはパイプライン)を見つけるアプリの実装が完了してからの方が望ましい。共有メモリへの参照・更新が非同期で行われるとデータの状態が思いもよらない物になるため同期を取る必要がある。Machine)理解のために簡単に...。複数のCPUが1つ以上のメモリに接続しているRAMモデルを変形した構成。排他」のどちらかの条件で実行する(権限のようなイメージ)。参照もしくは更新できるのは1人(特定のCPUで実行される1スレッド)だけProducer-Consumer共有メモリ上にqueueを配置して、タスクを格納しておき、手が空いたスレッドからqueueを参照してdequeueしてタスクを実行を繰り返すことで効率的に処理を行うリードライトロック共有メモリへの参照は値の変化を発生させないため、問題ないが、更新はダメ。更新処理が走った際には参照を一時的にストップ(参照の依頼を待ち状態にする)。更新処理が終了した後に参照が再び可能になる。現在、業務でwebsocketを使用したチャットア...2019-12-07プログラミングErlang7章を読んで。人間なら誰でも並行処理を理解している。週間)「俺また、やっちゃいました?(致命的バグ)」なろう系23歳の非異世界転生なWeb系Developer。Elixirという言語を推し中。清流elixir運営してます。紅茶の勉強を始めたり、チャリを買おうとして買わなかったりと興味が分散しがち。今は、並行コンピューティングに強めの興味があります。(2)月別アーカイブ広告はてなブログをはじめよう!takamizawa46さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。