パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

マイクロプロセッサの未来、将来のコンピュータスタイルは ?」記事へのコメント

  • 並列化 (スコア:1, すばらしい洞察)

    by Anonymous Coward
    >効率的な並列化を実現する言語
    効率的なのはもちろんだけど、あえて「ここは並列で!」なんて指示しなくても良きに計らってくれるくらいでないと、なかなか厳しいと思う。
    #pragma omp parallelうねうね。
    • by Anonymous Coward

      C/C++は抽象度が低すぎるから勝手に並列化するのはかえって難しいんですよ。
      プログラマの「人間様である俺様がもっとも高速なプログラムを書けるんだ」信仰と、それを支えるC/C++にover optimizeされたハードウェアアーキテクチャのせいでいつまでたってもC/C++支配は終わりそうにありませんが。

      • 手続き型言語は順次実行されるという概念が、並列化を妨げてる気がする。

        例えば、C/C++っぽいものを使うにしても。
        ・並列可能なブロックを二重波カッコで区切る
        ・ブロック内で、上に記述されている処理が全て実行されるまで待機しなければならない場合、二重セミコロンをつける
        とでもしたら、マシになったりしないかなぁ?

        例えば
        int main(){
         foo();
         bar();
         {{
          hoge1();;
          hoge2();;
          hoge3();
         }}
         ;;
         baz();
        }
        としたら、foo()とbar()と、{{hoge1(), hoge2(), hoge3()の順次実行}}を並列にして、その全てが終わるのを待ってからbaz()を実行する、といったように。

        # スレッド分割、順序入れ替えを行うか行わないかはコンパイラ判断で。

        --
        1を聞いて0を知れ!
        • 手続き系言語で並列実行できるようにする場合のキモは「いかに確実かつ高パフォーマンスに処理をスレッドセーフにできるか」といった所じゃないかな。

          簡単な記述で並列実行を指定できるようになっても、それだけじゃ美味しくないというか、
          その個々の処理間で並列処理のためのロックだとかそのあたりの問題の方がよっぽど大変というか。

          スレッドセーフの自動化といっても安直にデータアクセス全部にロックが入るようではパフォーマンスの低下がひどいことになりそうだし。
          そのあたりをちゃんと解析して必要最小限なロックだけで済ませてくれるような処理をコンパイラがやってくれるならうれしいんですけどねぇ…

          • by greentea (17971) on 2011年06月06日 17時48分 (#1965652) 日記

            並列化をするかしないかはユーザに任せないつもりで書きましたが、自動ロックは考えていません。
            i++; i++; って書いたとき、iがどうなるかは未定義でいいと思います。

            --
            1を聞いて0を知れ!
            親コメント

アレゲはアレゲを呼ぶ -- ある傍観者

処理中...