シングルスレッドな言語の並列化・マルチプロセス化についての暫定的な理解をまとめる

たまにはまとまってない情報を書いてもいいじゃないかということで、表題の通り暫定版です。

まえおき

Nodejsのclusterモジュールのドキュメントを読んでいて、
「ほぉ、並列化って簡単にできるんだなぁ」と感じつつ、関連記事をいろいろ調べてみると、

  • 並列化すればスループットが上がる
  • マルチコアの場合は有用。CPUのコア数と同じにすると良い
  • ワーカーやアプリケーションサーバなどは横に並べとけ

的な記述が色々あり、違和感を感じました。
Goなどのマルチスレッドができる言語でやる”並列化”と私が調べているものは別物なのでは?と。

ということで、身近な頼れる方々へ聞いて調べて考えた結果の暫定的な理解を書き留めておきます。 理解に誤りがあったら指摘もらえると喜びます。

パフォーマンスチューニングやスレッドセーフであるための4条項とかそういう込み入った話ではなく、浅い話です。

Continue Reading…