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

IntelからHyper-Threading対応のコンパイラ 16

ストーリー by Oliver
HT/SMPで違う最適化が必要 部門より

dai 曰く、 "Intelがハイパースレッディング対応コンパイラを発表した。販売は、12月9日からエクセルソフトを通じて行われる。今回発表されたのは、C++コンパイラとFortranコンパイラで、それぞれWindows版とLinux版がある。"

どこまでも最高の性能を求める場合には有効そうだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by SHNSK (10099) on 2002年12月06日 10時33分 (#212957)
    HashMap まわりとかが、gcc に添付されるものと違うので icc を使おうとう思うとソースに手を加えなければならない...
  • と思ったら、プレスリリースを読む限りではOpenMP対応で自動並列化
    もやります、ってことらしい。それはただのスレッド対応でないの?

    HT対応自動並列化というなら、片方のスレッドは浮動小数点演算ばかり、
    もう片方は整数系演算ばかりにして内部の演算器を効率よく使ってくれるとかしてほしいな。

    もちろんハードを作ってる会社のコンパイラが一番速いんだろうけど。
    --
    あぁ、「ン」が消えてるんですよ。「ビーフン・カレー」ね。
    • というか、OpenMP2.0対応というのがウリなのでは。
      2.0はまだ触ったことはないのですが、オフィシャルサイト [openmp.org]によると

      "Draft of OpenMP C/C++ 2.0 Specification released for Public Comments"として
      >Control of the number of threads for multi-level parallelism
      なんていうのもあります。
      クラスタマシンを主なターゲットにしているとはいえ、HT-Pen4では
      ノード間/ノード内/CPU内と、スレッド発行でも様々なレベルの並列処理が
      行われるので、並列レベルを一つのマクロ変数で定義するのではなくしたのは
      場面によっては大きな効率化になるのではないかと。

      >HT対応自動並列化というなら、片方のスレッドは浮動小数点演算ばかり、
      >もう片方は整数系演算ばかりにして内部の演算器を効率よく使ってくれるとかしてほしいな。

      それって細切れパイプラインのPen4で効果あるんでしょうか・・・・
      --
      kaho
      親コメント
    • >それはただのスレッド対応でないの?
      ただの自動スレッド対応ですね。
  • by Quo Vadis (10810) on 2002年12月05日 17時36分 (#212618)
    こちら [xlsoft.com]。

    しかし、「幅広gcc拡張子サポート」って……
    原文は"wider gcc extention support"とかなんとかだと思いますが。
    • by dai (252) on 2002年12月05日 20時07分 (#212679) ホームページ 日記
      > 原文は"wider gcc extention support"とかなんとかだと思いますが。
      惜しい。 原文 [intel.com](?)に
      The Intel C++ Compiler for Linux has substantially improved its source and binary compatibility with GNU C/C++, providing stronger C++ ABI conformance, wider gcc extensions support, and the ability to build the Linux kernel with fewer modifications.
      とあります。 extentionextensions
      親コメント
    • by Anonymous Coward
      素でレスですが、
      「より広範なGCCの拡張をサポート」
      ってことですか?

      #内容はよくわかんないのでAC
      • gccの拡張 (スコア:2, 参考になる)

        by mass (8786) on 2002年12月05日 21時43分 (#212731)
        gcc にはよく分からない拡張がたくさんあるようですから……
        こんなネストした関数も動きます。
        intel のコンパイラではサポートしてなさそうですが(^^;

        #include <stdio.h>
        typedef int int2int(int);
        int g(int b, int2int* padd) {
            return (*padd)(b);
        }
        int f(int a, int b) {
            int add(int n) {
                return n+a;
            }
            return g(b, add);
        }
        int main(void) {
            printf("%d\n", f(1,2));
            return 0;
        }
        親コメント
        • Re:gccの拡張 (スコア:2, すばらしい洞察)

          by Anonymous Coward on 2002年12月06日 1時48分 (#212877)
          こんなコード書くほうが問題だろ
          親コメント
          • Re:gccの拡張 (スコア:2, 参考になる)

            by Average (3404) on 2002年12月06日 20時04分 (#213324) 日記

            こんなコード書くほうが問題だろ

            いえいえ、ネストした関数を書くのはpascal(Oberon,Algol,Ada,等)では基本です。
            いったん慣れると、コレ無しではいられません。

            とゆーか、最初Cを見たとき
            「ネスティング出来ないでまっとうにプログラム書けるのぉ?」
            と思ったっす。
            --
            -----------------
            #そんなワタシはOS/2ユーザー:-)
            親コメント
          • by nekopon (1483) on 2002年12月06日 8時46分 (#212923) 日記
            こんなコード書くほうが問題だろ

            ネスト可能な関数は、Pascal サポートの副産物だそうですよ。

            # Pascal 書くほうが問題だとかいうとフレームの元なので注意しよう

            親コメント
          • by SteppingWind (2654) on 2002年12月06日 11時10分 (#212977)

            この例ではあまりに簡単すぎて有用性が分かりにくいのですが

            • 処理の指定のために関数(のポインタ)をパラメータとして関数に渡す必要が有る(sort関数等が代表的)
            • 局所的な関数なので, 関数名のスコープをソースファイル全体に広げたくない

            という場合には便利です(私は多分互換性重視で使いませんが).

            問題は, 伝統的なC言語にはファイルを分割する以外にクラスやモジュール(Modulaなんか)の様に明示的に名前空間を制御する機能が欠けていることだと思います.

            親コメント
            • by mass (8786) on 2002年12月06日 19時05分 (#213283)
              確かに、名前空間の汚染を防ぐという意味でネストされた関数は有用ですが、
              この例の肝は、ネストされた関数addが親スコープの変数aの値を
              参照しているということだったりします。
              closure もどきなんですよね。(外には返せないので別物ですが)
              実際に吐かれるコードを見ると、動的にラッパ関数を生成して
              親スコープのスタックフレームへのポインタを関数に渡しています。
              親コメント
          • by Anonymous Coward
            そう?
            Javaのインナークラスや無名クラスの使い方と よくにている気がする。
  • 無料バージョン (スコア:1, 参考になる)

    by Anonymous Coward on 2002年12月05日 21時08分 (#212712)
    http://www.intel.com/software/products/global/eval.htm
    Linux用は上記のアドレスで”Non-Commercial Unsupported Version”によりC++,Fortranとも無料で使えます。
typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...