Yahoo! JAPAN Tech
Blogの「分散プログラミングモデルおよびデザインパターンの考察」の記事(以下のURL)に対し、批判的な書き込みを散見します。  
<http://techblog.yahoo.co.jp/architecture/2016_02_distributed_system/>

しかし、初心者の私には何が間違っているのか分かりません。  
また、「何がどう間違えている」という明確な指摘をされてる方もいません。

具体的に、何が間違えているのか、何がおかしいのかを教えてください。
CC BY-SA 3.0
2016-02-17T08:19:40.610
22202
2016-02-23T11:59:01.110
14441
question
デザインパターン
Yahoo! JAPAN Tech Blogの「分散プログラミングモデルおよびデザインパターンの考察」の記事は何が間違っているのでしょうか？
冒頭で説明されている「フリンの法則」ですが、これは通常は文字通り「命令」、言い換えると図の通り「四則演算」レベルの話です。分散システムがMIMDというのは定義上当たり前なので、通常は「コンピューター」の内部、特に「CPU」に着目した話に使われます。

一方記事後半の「デザインパターン」では各「プロセス」が一定の割合をこなす存在のような説明がなされています。これは「コンピューター」や「プロセス」や「スレッド」というレベルの話になります。

それぞれの説明は大きく間違っていないと思いますが、問題の記事は本来プロセスやコンピューターのレベルをテーマとしているはずです。それをMIMDやUMAといったハードウェアの話から飛躍させて説明しているので違和感があります。
CC BY-SA 3.0
2016-02-17T11:16:56.383
22210
2016-02-17T11:16:56.383
5750
22202
answer
間違っているというより、全体的に用語の使い方があいまいで意味がよくわからない箇所が多いと思いました。ですから具体的にどこが間違っているという指摘はしづらいのですが、明らかにおかしなことが書かれている箇所があります。

>
> 厳密には、クラウド環境を構成するサーバーは、マルチプロセッサーやマルチコアは内部的にもMIMDですし、最近のプロセッサやGPUなどの拡張ボードでも何かしらのSIMDに対応しています。そのため、厳密な分類では、現状のクラウド環境はMIMDおよびSIMDのハイブリッドなアーキテクチャですが、今回の記事の流れから、SIMD動向については割愛してMIMDを中心に話を進めています。

↓前半はクラウドを構成するサーバーのハードウェアのアーキテクチャの話です。

>
> 厳密には、クラウド環境を構成するサーバーは、マルチプロセッサーやマルチコアは内部的にもMIMDですし、最近のプロセッサやGPUなどの拡張ボードでも何かしらのSIMDに対応しています。

↓ところが、後半はなぜかクラウド環境のアーキテクチャの話になっています。

>
> そのため、厳密な分類では、現状のクラウド環境はMIMDおよびSIMDのハイブリッドなアーキテクチャですが、今回の記事の流れから、SIMD動向については割愛してMIMDを中心に話を進めています。

CPUの命令がMIMDかSIMDかという違いはプロセスレベルの処理には関係がなく、そのプロセスを処理の単位としているクラウド環境の構造には何の影響もありません。
CC BY-SA 3.0
2016-02-17T14:25:59.263
22216
2016-02-17T14:25:59.263
3639
22202
answer
デザインパターンの定義が、特に設計において、過去に経験した事例をもとに、名前をつけて再利用しようと定義したものとなります。ですので、デザインパターン自体批評を受けやすく、全てのケースのおいて銀の弾丸たりえません。  
さて、この記事では、その背景となるような課題共有もきちんと記載されておらず、こんな構成があるんだよ、名前はこうつけた的な記事（のようにわかりにくい）ですし、まだまだ分散プログラミングについての十分な事例がまとまっていない中、どうしてもイヤイヤ、そうじゃなくてと言いたくなる内容だからではないでしょうか。

質問者の方もおっしゃっているように、各所で批判記事がありますので、それらもきちんと読んだ上で判断されたらと思いますが、全ての読者に対して満足のいくような記事を書くのはとても困難だという点も考慮されたらとは思います。
CC BY-SA 3.0
2016-02-23T11:59:01.110
22434
2016-02-23T11:59:01.110
4956
22202
answer