← |
2024年11月 |
→ |
日 |
月 |
火 |
水 |
木 |
金 |
土 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
|
26 |
27 |
28 |
29 |
30 |
|
#なんとなく、微妙に愚痴。
最近のCPUは2〜4コア搭載している物が多い。 要するに、昔のCPUでいうならば、 2〜4個のCPUを搭載しているような物だ。
だからといって、2〜4倍の速度で動くというのは早計な話である。
たとえば、話を単純にして、 CPUは一度に1演算子しか処理できないと考えたときの 1+2+3+4+5という計算式を考えてみよう。
1,1+2=3 2,3+3=6 3,6+4=10 4,10+5=15 このように4ステップの手順を経て計算結果が求められる。
で、CPUが2つあった場合にはどうだろうか?
1,1+2=3|3+4=7 2,3+7=10|10+5=15 と答えたら間違いだ。
というのも3+7を計算中に、 その答えである10を使った10+5という計算は出来ないからだ。 正しくはこうである:
1,1+2=3|3+4=7 2,3+7=10|何もしない 3,10+5=15|何もしない
このように、CPUが2つになったとしても、 演算の前後関係がある以上、 計算にかかる時間が2分の1になるわけではない。
ここでは、CPUの演算を例に挙げたが、 実際にはプログラムの世界は複雑で、 これらのタイミング制御をするためのロック機構などが重要で、 Webアプリでも最低限、排他制御を考える必要があるし、 高速化が目的ならば、パイプライン処理やイベントなど色々と技を駆使することになる。
で、これは、何もコンピューターの世界だけの話ではない。
1人でやったら6ヶ月かかる仕事があったとする。 では6人いれば1ヶ月で終わるのだろうか? または、180人いれば、1日で終わるのだろうか?
伝票入力など単純作業ならばそういうこともあるだろう。
しかし、大抵の仕事の場合は否だ。
大抵の仕事はいくつもの工程に分かれている、 工程によっては複数人で作業できる物もあれば、 工程によっては1人で作業をしなければならない物もある。
また、「複数人ではできないAの工程が終わらなければ 複数人で出来るBの工程ができない」といった 工程の前後関係だってある。
特に、広い意味で職人と呼ばれる人が行う仕事というのはそういう物である。
|
00:00, Tuesday, Aug 16, 2011 ¦ 固定リンク
¦ 携帯
■コメント
■コメントを書く
※コメントの受け付けは終了しました
|
|