パスワードを忘れた? アカウント作成
15538 story

ソフトウェアもムーアの法則に従え 141

ストーリー by mhatta
従えと言われてもねえ 部門より

Anonymous Coward 曰く、

18ヵ月から24ヵ月年ごとに2倍のフレーズでお馴染みのムーアの法則であるが、CNET Japanに ソフトウェアもムーアの法則に従えという記事が掲載されている。 マルチコア化によってムーアの法則を続けているIntel側が、 ソフトウェア業界に対して演算能力を使い切るための並列処理への取り組みを 増やすよう求めているような内容であるが、 マルチコア化の速度に、ソフトウェア開発者の能力と過去のサポートも必要な ソフトウェア業界が対応できるような気はしない。ちょっと無茶言うなという 感じだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 従いましょう (スコア:5, おもしろおかしい)

    by x-rebuttal (33869) on 2007年05月30日 8時58分 (#1165023)
    お給料もムーアの法則に従っていただけるのなら
  • 言い分としては (スコア:4, すばらしい洞察)

    by YOUsuke (6796) on 2007年05月30日 8時55分 (#1165022) ホームページ 日記
    「お前らがソフトの工夫をサボって演算能力上げろ上げろと言うのにずっと従ってきたんだから、たまにはそっちで苦労しやがれ」
    ってとこでしょうか。

    #サボってたのは俺を含む一部の人たちですが。
    --
    妖精哲学の三信
    「だらしねぇ」という戒めの心、「歪みねぇ」という賛美の心、「仕方ない」という許容の心
  • 参考資料 (スコア:3, 参考になる)

    by NACK-A (30985) on 2007年05月30日 11時02分 (#1165110)
    マルチコアが導く「タダ飯時代」の終焉 [mycom.co.jp]
     動作周波数をひたすら向上する→物理的な限界に突き当たる。
     平均IPCをひたすら向上する→手は尽くしているが、これからの劇的な向上は困難。
    といったところで、各社とも正攻法は手詰まりの感がある、といったあたりでしょうか。

    命令の並列性をハードウェアにて抽出するSuperScalar型アーキテクチャでは、IPC向上にも
    限度がある、といわれています。
    並列性抽出をコンパイラに移したVLIW型アーキテクチャは高IPCを実現できますが、その方向
    であればIntelもItaniumでやってはいますね。
    • 実際にはPentiumが出た時だって既存のプログラムは超高速で動いたわけじゃないよね。
      バスが64Bitの60/66MHz動作になって一般に普及していた486の32bit/33MHzバスに比べ
      足まわりは速くなったが、大きな特徴である2命令同時実行を活かすには、
      それなりの最適化コンパイラが必要になった。

      両方のパイプラインを動かすため、同時実行できる単純命令をペアにして命令デコーダに
      投入できるようコーディングする必要があったわけで。今度はマルチコアで性能を引き出す
      最適化コンパイラが要求されているだけなのでは。

      ベクトル型スーパーコンピュータだと、ハードウェアの特徴を活かすために専用の
      ベクトル化コンパイラなんてものが付属してました。今回もスレッド分割を自動でやってくれる
      賢いコンパイラが出てきたらそれでOKのような気がしないでもないです。
      親コメント
      • by mocchino (13752) on 2007年05月30日 12時27分 (#1165193)
        >スレッド分割を自動でやってくれる賢いコンパイラが出てきたらそれで

        スレッド化する場合、処理の相関関係、データの相関関係を意識する必要があるので
        コンパイラというので有れば不可能です
        プログラムソースだけでは情報が足りなすぎます。

        自動化と言うのであれば、仕様からプログラム自体を自動生成する必要が出てくるでしょう
        親コメント
  • 法則? (スコア:2, すばらしい洞察)

    by deepsea (24129) on 2007年05月30日 8時51分 (#1165021) 日記
    経験則あるいは目安・目標に過ぎないものをLawと呼ぶのはどうも抵抗があります。

    #ムーア本人の責任じゃないとは思うけれど・・・・・・
    --
    Deepsea the Evoker St:10 Dx:13 Co:14 In:18 Wi:9 Ch:9 Neutral
    Dlvl:1 $:0 HP:12(12) Pw:8(8) AC:9 Xp:1
    • Re:法則? (スコア:2, 参考になる)

      by Anonymous Coward on 2007年05月30日 10時12分 (#1165076)
      > 経験則あるいは目安・目標に過ぎないものをLawと呼ぶのはどうも抵抗があります。

      古来より法則 (Law)なんて“経験則あるいは目安・目標に過ぎないもの”なんですよ。グレシャムの法則、ケプラーの法則、パスカルの法則、メンデルの法則しかり。

      それらにはきちんとした理論・理屈があるじゃないか、だって?
      それは後年その法則を裏付ける理論が発見されただけで、その裏付けがなされる前であっても法則であったのはたしかです。
      一つ取ってみて、ケプラーの法則だと、「過去の天体運行のデータからこう言える」ってだけで、何でそうなるかはニュートンを待たねばならなかったんです。「過去の天体運行のデータからこう言える」はいいけど、「過去の半導体技術のデータからこう言える」はダメってことはないでしょ。

      しかしこう言ったところで「抵抗感がある」という個人の主観はいかんともしがたいんだよなぁ。
      親コメント
    • 個人的には法則に「従え」って表現の方が気になりますね.
      現象から導かれた理論であるべき法則に現象の方が合わせるのはなんとも・・・

      #浮いてないで落ちろ
      #バターを塗った面を下にしろ
      #言い出しっぺは負けろ

      親コメント
    • by nim (10479) on 2007年05月30日 13時54分 (#1165287)
      law(法則)こそ、まさに経験則に基づくものを指す用語じゃないですか。
      証明可能なものは、定理(theorem)と呼ぶ方がしっくりきますけど。
      親コメント
  • 「サーバサイドでは順調だが~」とか言ってるように、デスクトップ用途の話なんですよねこれきっと。
    と、なると、マルチコアが有用な利用法を考えて、かつユーザに受け入れられる必要があります。ただ、デスクトップ用途のほとんどは「人間とのインタラクション」だと考えると、人間のI/Oは並列化しづらい性質のものなので(少なくとも言語的思考の流れや注視点は2つ以上にすることは困難)、CPUにはI/Oに関係しない仕事をやらせるか、「壁紙を動画にする」などの無駄な仕事をやらせるかのどちらかになるのだと思います。

    そもそも、今のPCに求められてる機能って
      - Internet Explorer(+flash再生機能)と、
      - Outlook (Express?)と、
      - (optionally) Word/Excel/Powerpoint
    ぐらいなんじゃないでしょうか(サンプル: 親とか非アレゲなきょうだいとか)。おもしろいもの(コンテンツ)がどんどんネットの向う側に行ってしまう昨今、CPUの高速化への要求は3年前ぐらいに止まってしまったのかもしれません。

    # ぶっちゃけ、「なぜか」OSが重くなる分を補償するためなんじゃねーの?
    • ソフトウェア開発の最前線には居ない門外漢からすると、
      それこそが古く凝り固まった考え方なのではないか?と思うのです。
      人間が同時に操作できない点に縛られて後ろ向きになったり、
      別々の複数のソフトウェアやバックグラウンドのI/Oを走らせる用途しかアイデアがないとか、
      そういう古典的な並列コアの使い方を何とかしろよと問われているのだと思うのですが。

      ほとんど効果が見えないSIMD命令の類も同じ。本当に動画のエンコードぐらいしか活用方法がないの?
      マルチメディア処理用命令と業界全体が思い込んでるだけじゃないの?
      --
      =-=-= The Inelegance(無粋な人) =-=-=
      親コメント
      • 落穂拾いは10人で協力すると作業時間が1/10になるが、
        10人の妊婦が協力しても子供は1ヶ月で産まれてこない。


        Brooksが「人月の神話」でソフトウェアの開発期間についてそんなことを書いていたと記憶しています。
        本質的に並列化が向いている処理と向いていない処理がある、という点でソフトウェアの並列化にも同じ事が言えます。

        並列化が向いている処理というのは「他の処理と独立して行える比較的時間のかかる処理」です。
        「他の処理と独立して行えない処理」を並列化するなんてのは論理的に不可能だし、
        「他の処理と独立して行えるが時間のかからない処理」は並列化しても同期処理に時間がかかって
        作業効率はほとんど上がらない(場合によってはかえって遅くなる)、しかも並列化プログラムは
        バグ取りに非常な困難が伴うので割に合わない、というのは並列プログラムを書いたことがある人に
        とっては常識ですね。

        で、「他の処理と独立して行える比較的時間のかかる処理」ってのはデスクトップ用途の場合だと既に挙がっているようなものしかないわけで。
        親コメント

        • 「他の処理と独立して行える比較的時間のかかる処理」ってのはデスクトップ用途の場合だと既に挙がっているようなものしかないわけで。


          いや、まだ「無駄にCPUを食っていいから」という「投機的実行」パターンが残っていると思うぞ。

          • 投機的にモザイクのかかった画像を補完してみる
          • 投機的にプログラマが書くのではないか、というコードを生成してみて、ついでにコンパイルもしてみる。(プログラマがコードを書いて、make って実行すると、いきなりコンパイルが完了する、という…)
          • 投機的に、まだ行っていない出張の出張報告書を書いてみてくれる


          あとは、「従来できなかったような総当たり戦」というものも…

          • ありえるコードバリエーションを全部生成してみて、与えられたソースコードと同じ結果になるか比較する事で、最小バイナリサイズのプログラムを生成させるコンパイラ
          --
          fjの教祖様
          親コメント
      • おっしゃることはよくわかるのですが、それって
        「今のデスクトップコンピューティングじゃない何かを考えろよ」
        と言ってるのに等しい気がしますね。

        # もちろんみんな考えてるさ。答はまだないが。
        親コメント
    • 人間自身がムーアの法則に沿って進化すればいいんじゃないんでしょうか?
      --
      あぁ、「ン」が消えてるんですよ。「ビーフン・カレー」ね。
      親コメント
    • IEだと...
          本人の好みに合わせ勝手にWebページを収集してリストアップしまくってくれるとか
      Outlookだと..
          メールが来たら定型処理は例文を作っておいてくれるとか

      まぁエディタ関連はちょっと無理っぽいですが
      入力されたデータに合わせて例文を作成し続けるとか?

      個人向け端末だと、裏で秘書プログラムが動くのが一番役に立ちそうですね

      まぁただ同じ処理でもマルチスレッド/タスク化出来る物は有るでしょうから
      順次やってってくれよって事なのでしょうが...

      マルチスレッド/プロセスなプログラムって作る際に処理だけではなく
      データの流れとかも意識しなきゃいけなくなるので
      単にいきなり言われても作れる人が少ないって話しのような気がします

      親コメント
  • by Anonymous Coward on 2007年05月30日 9時58分 (#1165066)
    技術者のスキル不足を棚に上げ、生産性の名の元に、どんどん重い言語や開発手法が登場

    早いマシンが必要になる

    ハード業界が儲かる
  • イ*テル「1人では1日、1個の井戸しか掘れないと仮定しましょう。」
    顧客  「ふんふん、それで?」
    イ*テル「普通の会社は1人しか派遣できないので、4個の井戸を掘るのに4日です。」
    顧客  「ふんふん、それで?」
    イ*テル「うちでは4人も派遣しますので、4個の井戸を掘るのは1日ですみます。」
    顧客  「あー、でも、うちは1個の井戸だけ掘れれば、それで十分なのよね。」
    イ*テル「…。」
    顧客  「ていうか4人で1個の井戸を掘るのに6時間ですむかって話だよ。」

    --
    clausemitz
  • ムーアの法則といえば (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2007年05月30日 9時41分 (#1165051)
    昔こんなのを見つけて笑ったことがある

        WANTED
       Motorola
    for Violating
      Moore's Law

    Dead or Alive
  • うーむ。ここまで議論が進んで,ErlangやHaskellという名前が一度も出てこないのはなぜ?

    最近のIT業界をみてると,「関数型プログラミング言語」を新しい流行にしようというながれが目に付きます( [atmarkit.co.jp])。処理を並列化しやすいというその特性が,とくにH/Wよりのメーカーにとって魅力的だからです。

    いままで「構造化」「オブジェクト指向」と進んできたプログラミングパラダイスが,次は「関数型プログラミング」へと進みますよ,というメッセージの一環なのでは?
    • 関数型と対になる概念は手続き型。オブジェクト指向も構造化も分割に関するパラダイムであって関数型がそれらの発展型なわけではない。なので関数型/宣言型へオブジェクト指向から移行するというのはちょっと現象を説明していないように思う。それに現在の関数型言語でパラダイスというわけでもないだろうし。おそらく鍵は「それがオブジェクト指向そのものである可能性も含め、オブジェクト指向に対応するような分割のパラダイムを関数型言語で記述できる」てなところだろう。
      親コメント
typodupeerror

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

読み込み中...