トップページ⇒linux
985コメント403KB

intel compiler for Linux

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/11/29 17:53ID:5k7yf0ai

intel 社の Web ページ
URL:<http://developer.intel.com/software/products/eval/>;
の、"Non-Commercial Unsupported Software(非商用、サポート無し)" から、
RedHat系Linux 6.2 または 7.1 に対応した IA-32 や IA-64向きの
最適化C++,Fortran9x用のコンパイラ(version 5.0.1) が無料で
ダウンロードできるようになっています。
(詳しいライセンス条件は、ダウンロード時に表示される文書を
参照してください。)

intel 自身が作ってますので、インテル系のCPUの資源を活用できる
実行ファイルが生成されるます。(AMD の Athlon も Pentium III と
みなしてコンパイルオプションを選べばMMX機能などを使うことが可能です。)

以下は、「無料永続版」を入手した後で、それを実際に使えるようにする
ための設定方法の記述です。
C++ と fortran9x を両方ともインストールする例を書いていますが、
どちらかだけしか必要ない場合は、片方を省略することができます。

例は RedHat6.2 系統向けになっていますが、7.x 向けの場合でも大体同様です。
(Web ページからダウンロードしてくるファイルが違うだけです。)

ダウンロードする際に入力したメールアドレスにインストール時に必要となる
ライセンスキー情報が送られてきます。
0455login:Penguin02/12/20 13:35ID:/crymO6Z
>>454
Q148399,Q162516 Profmerge causes SIGSEGV under critical system load
Q148801 Seg fault with virtual base, template class
Q144382 internal error: select_overloaded_copy_constructor: NULL constr
Q134428 incompatibility with regard to large file support
Q155513 compiler generates incorrect function name if function body changes
Q155001, Q163438 Multiple symbols created for local statics in cloned routines
Q153937 Internal error loop: source_file_for_seq: bad seq number on vla dim expr
Q149096, Q153942 constant used in generated andpd instruction is not 16-byte aligned
Q131763, Q162474 Problem with the code generated for delete[]
Q141709, Q160439 new substitute header file was added
Q100490 __declspec(align(n,off)): some (base,offset) pairs produce incorrect results
Q162533 dyn file corruption
Q158469,Q160670 Problem in PGO function naming scheme
Q144379 -vla cannot have static storage duration
Q122044 Compilation hangs when test case is compiled with optimization on
Q122047 Compiler hangs when optimization is on
Q96189 Is arithmetic operation on void pointers allowed?
Q151784 -xW vectorization gets wrong results
Q156239 inner loop was not vectorized
Q153389 Dwarf2 Lexical block boundaries incorrect, overlap other functions
0456login:Penguin02/12/20 13:36ID:/crymO6Z
>>455
書き忘れた。l_cc_p_7.0.065 からの icc の修正点です。
0457login:Penguin02/12/24 16:18ID:JyDxMYz1
マイナーバージョンアップをダウンロードしたいと思ったら,

「We're sorry, each user may only obtain one non-commercial license for each version
 of an Intel software development product. ・・・」

と,ノンコマーシャルバージョンは,一人一つのバージョンしかダウンロードできない.
みんなどうやってアップグレードしてるの?
メアドたくさん手に入れて,それで再度登録?

0458_02/12/24 16:20ID:ouu1I4jc






       http://freeweb2.kakiko.com/dengeki/indexc.htm




0459login:Penguin02/12/24 16:22ID:4v+Gtyjb
>>457 ?? 一人、一つのバージョンにに関して 1 つのライセンスしか
取れない、って書いてあるけど??
0460crazy_u02/12/24 21:05ID:OYox6oQQ
>>457
https://premier.intel.com
へいって,既に取得しているユーザIDとパスワードでログインして,"Download"か"What's New"へいけばOK.
既に取得しているライセンスは新しいバージョンでも継続して使えます.
0461login:Penguin02/12/25 00:49ID:uv9cjelH
iccで環境構築している人っています?
0462login:Penguin02/12/25 17:00ID:abtISU62
>>460
でけた.
更新されてなかっただけ見たい.
ありがとう!
0463login:biginer02/12/25 17:07ID:q3QDBWTa
こんにちは
質問なのですが。
当方IntelPentiumIIIProsesscer800Mhzを使用して、
OSにRedHatLinux7.2Valhallaを使っているのですが

このような環境でもiccの効果は見込めますか?
Pentium4でなくてPentiumIIIの場合gccと比べて一般的にはiccでも高速化する傾向があるのでしょうか?

以上、かなり初心者ですが、質問に返答いただけましたら幸いです。

0464login:Penguin02/12/26 23:59ID:G0YkL98D
>>463
30%ほどの速度向上が見込めるそうです。
0465login:Penguin02/12/27 14:38ID:GXP8e78Y
だれか、カーネルとライブラリー、モジュールを
iccで再構築に成功した人いないの?
0466login:Penguin02/12/29 00:22ID:4wQu8ATx
ifcで計算した結果をバイナリで出力したデータを
テキストに変換すると、精度がe-44のデータが出るのですが、
このようなゴミみたいなデータをゼロにするにはどうしたら
いいでしょうか?ちなみに、変数はreal*4で指定してます。
046746603/01/02 19:57ID:+EkiIDCE
解決しました。
汚してすみませんでした。
0468login:Penguin03/01/06 13:29ID:Do2PTvNh
教えて偉い人

*.licって別のマシンで使い回し出来なかったけ?
HostIDとかとってる?
0469crazy_u03/01/06 14:33ID:JaWhyWax
>>468
偉くない人だけど考えを書きます.
*.licは別のマシンでも使いまわしできるけれども,
2台以上のマシンへ同時にインストールするのは商用用途なら絶対にしてはならないことです.
自分もソフトを書いて仕事をしている以上,他の人のソフトの権利も守るべきです.
マシンを載り換えるならOKだと思います.
0470login:Penguin03/01/06 15:03ID:HQfFIc8m
>crazy_u

thanks
いや、正月を機会に速い箱に乗り換えてiccをインストールしようとすると
インストーラに撥られるんです。前の箱は解体したので研究が進みません。

契約は守っていますので一応。
0471ot2203/01/06 18:15ID:5PqBTGEN
一応iccだけでカーネルはできました(linux-2.4.21-pre2)。
gcc3と思わせればできてしまいました。早くなったのかどうかはわかりません。
ライブラリはやってみようとしましたが、gccべったりの作りで断念しました。

0472login:Penguin03/01/06 18:22ID:f86BKYE5
lmgrdを使ってライセンス管理する某ソフトは
NICのMACアドレスを見ていたりするのだが、
今はそういう問題じゃないんだよね。
0473login:Penguin03/01/06 18:53ID:lP1onCdi
>>472
ああ、入らない。

その某ソフト(octaveの親御さん)が入っていてFLEXlmがそっちを見ていそうです。
/opt/intel/licensesじゃなくて/usr/localな方を見ているとか。
0474login:Penguin03/01/06 21:52ID:Np8sVtCA
>>471
>ot22
>一応iccだけでカーネルはできました(linux-2.4.21-pre2)

すばらしい。コンパイルオプションはどうしました?
0475login:Penguin03/01/08 20:11ID:mhZesDiw
Intelの新しいチップセットE7250を使ったMother Board
はRed Hat 7.1が動きますか?
ifc7をP4-3.06で動かしたいんですが,
850EでPC1066の方がいいでしょうか?
シロートの質問で申し訳ありません。
0476crazy_u03/01/08 20:38ID:FGrvqAXs
>>473
installする時にライセンスがみつからない場合はライセンスの置いてあるディレクトリを聞かれませんか?
聞かれたら「絶対パス」で入力してあげればOKなはずですが.....
installできているなら,/opt/intel/compiler70/ia32/binにあるifc, icc, icpcを開いて
INTEL_LICENSE_FILE=/opt/intel/licenses;
export INTEL_LICENSE_FILE;
となっているか確認してみると良いと思います.
047747303/01/08 20:51ID:dtFQPFK8
>>476
>crazy_u
>ライセンスの置いてあるディレクトリを聞かれませんか?

いや、「ライセンスはどこだ?INTEL_LICENSE_FILE=/opt/intel/licenses参照」
といってインスタレーションスクリプトが閉じちゃうんですよ。でFLEXlm
使ってるMATLABが走ってるんでそれがいたずらしているのかなと。

相変わらず仕事が止まったままです。欝。
0478crazy_u03/01/08 20:54ID:FGrvqAXs
>>475
動くかどうかは入れてみないとわからない.(多分,動くでしょう.)
新しいデバイスのサポートととかを考えると,赤帽7.3か8.0にしたほうが良いでしょう.
私は,850E(ASUS P4T533-C, 安定してます)で赤帽7.3と8.0でifc7を動かしてます.(2.53GHzと2.80GHz)
性能の総合評価では850EでPC1066だと思います.DDR266ではメモリーへの書込み,書換えはRIMM PC1066に遠く及ばない.
http://pcweb.mycom.co.jp/benchmarklab/2002/33/index.html
で比較試験をしていますので、参考にしてください.
E7205が今後どこまで上位のCPUとメモリをサポートしてくるか次第で有力候補ではありますね.
でたばかりのチップセットの場合は人柱になる覚悟も必要です.すぐにバリバリに使いたいならBIOSも枯れて安定している方を勧めます.

P4-3.06は非常に羨ましい!!
0479login:Penguin03/01/08 21:18ID:Nu006fMN
>>475
ここも参照されたらいかが
www.hpc.co.jp

あたしは数値計算に最適化されたカーネルのパラメータとか知りたい。
0480crazy_u03/01/08 21:30ID:FGrvqAXs
MATLABを使用している人は >>477 を助けてあげてください.
installファイルの中を読んで調査するしかないかも....
中で使用されている変数名のどれかが既に他で定義されてしまっているのかもしれない.
それさえ分かれば臨時に別の変数名に書き換えてしまえばよいのですが…
力になれなくてごめんなさい.
0481crazy_u03/01/08 21:56ID:FGrvqAXs
>>477
もしかして,*.licをftpで転送してませんか?
binaryかasciiかどちらかは忘れましたがモードを間違えるとviで開いても見た目は分かりませんが壊れています.
保管してある(でしょうきっと) *.licをフロッピーディスクにいれて移してみてはどうでしょう.
0482ot2203/01/08 22:50ID:NeqYyahG
>> 一応iccだけでカーネルはできました(linux-2.4.21-pre2)
パッチらしきものを希望される方は多いでしょうか? 多そうだったら
public にアクセスできるところに用意しようかなと思ってます。

P.S. モジュールが出来ているような出来ていないような
0483login:Penguin03/01/08 23:14ID:U/R7YQLN
>>482
> パッチらしきものを希望される方は多いでしょうか?
ぜひぜひお願いします。これは面白い♪

>crazy_u
ううたしかにbinaryで転送して壊れている可能性も...
あとで報告します。
0484login:Penguin03/01/09 00:19ID:i1DFujLV
なんと
0485login:Penguin03/01/09 00:25ID:5dI2J0HT
2
0486login:Penguin03/01/09 00:47ID:janFKrXY
2chブラウザ以外からは見れないようにすれば軽くなるんじゃないの?
0487login:Penguin03/01/09 00:53ID:zKKLoi8Q
ひろゆき好きです(ポ
0488login:Penguin03/01/09 01:10ID:d0cXwiPT
ひろゆきって男前だよな
0489login:Penguin03/01/09 01:23ID:d0cXwiPT
>>440
そんなに寄付集まらないと思うぞ。
利用者に月1万円って現実的ですか?
0490login:Penguin03/01/09 02:02ID:OzFfd3tm
僕の肛門もIP記録実験です
0491login:Penguin03/01/09 02:59ID:V0yK4S7y
ゲハ板なんかは大人しくなりそうだな・・・
0492login:Penguin03/01/09 03:47ID:qciTMwbB
>>157
裁判上不利になるから、大きいところではもう無理だろうな。
だから2ちゃんでいい、という帰結もまたおかしいけれども。

これからは、IPが裁判で提出されるのが常識になりつつ、
それ以外の局面でどうIPが守られているか、とか
どれだけシステム上の信頼性があるか、とかが掲示板の人気に影響しそう。
0493login:Penguin03/01/09 04:26ID:o3zr6kVd
XFree86をIntelのCPUのアーキテクチャー向きに最適コンパイルしたら、
特に、MMXとかのベクトル的命令を多用するコードを吐けたら、
さぞや描画性能が上がるのではなかろうかと思うけど、あるいは
Graphics Chip のドライバー性能がネックなのかな?
0494login:Penguin03/01/09 08:35ID:2OFBTc6l
>>478
赤帽8.0はifc7が動作しないと,ifc7のresellerのホームページに
書いてありましが,実際は動くんですか?
0495login:Penguin03/01/09 10:22ID:e/ruQh9v
>>493
gcc-3.2でオプション変更するだけでも効果があるから
期待できるでしょうね。
0496ot2203/01/09 11:27ID:fZiQVJ4s
>>482
> パッチらしきものを希望される方は多いでしょうか?
ぜひぜひお願いします。これは面白い♪

http://www.cs.tohoku-gakuin.ac.jp/~otofuji/ICC-Linux/memo.html
をご覧下さい。自己責任でテストして下さいね。
0497login:Penguin03/01/09 15:07ID:hzDSQYSx
FlexLMウゼー
0498login:Penguin03/01/09 16:03ID:+r8AnlXi
>>496
「責任は負いかねません」って。
0499crazy_u03/01/10 00:34ID:4WK5owb0
>>494
478の人も赤帽8.0で動かしているようです.
私は何も問題なく動いています.
Intelで動作検証が済んでいないというだけではないでしょうか.
gcc-3.2とgcc-2.9xはバイナリーの互換性がないので,使用するライブラリによるのかもしれません.
不安なら,赤帽7.3にしたらどうですか.
ちなみに,赤帽8.0のvsftpdはasciiモードの転送はファイルが壊れる目にあってます.
0500login:Penguin03/01/10 01:02ID:d3LQt9jT
>crazy_u
やっぱFLEXlmの問題です。無理やりインストールして走らせてみましたが
FLEXlmが管理するライセンスのところで引っ掛かりました。

Cotave clone(W のライセンスファイルを加工するです。あーやだやだ。
0501login:Penguin03/01/10 16:31ID:QDvvakyP
>>499
自分も試してみたいと思います。
0502login:Penguin03/01/12 23:05ID:6n/fieKJ
>ot22
patch thx.うちも拵えてみました。
0503山崎渉03/01/15 11:23ID:/OP2L6bf
(^^)
0504login:Penguin03/01/18 20:29ID:yibpzl2+
iccでgccをビルドできねー
0505login:Penguin03/01/18 20:38ID:Dm64aJQm
このスレみてicc使い初めて数ヵ月。
コンパイラが2つあると、ビルドで失敗した時
もう一方でトライできるから楽。

最近はxvで、*.o はgcc版とicc版がチャンポンに
なったがなんとか成功。
0506ot2203/01/19 00:44ID:Z7H9vr9j
> 504
> iccでgccをビルドできねー
make そのものは面倒なことはないのですけど(オズオズと)
gccのソース以上のtextは吐けないので、makeしたgccの意味がよくわからない
のですが… stage1のレベルのコンパイラが欲しいということでしょうか?
0507login:Penguin03/01/19 01:16ID:AqdOvBsU
>>506
いや、コンパイラコンパイラとして動くか試したかっただけ(w
0508login:Penguin03/01/19 01:56ID:ZReWqC8H
>>507
> コンパイラコンパイラとして動くか試したかっただけ(w
コンパイラコンパイラなら、ふつーはyaccつかうのでは?
0509login:Penguin03/01/19 02:41ID:Vx0hKONh
>>507
コンパイラコンパイラってのは意味が違うんでは?
051050503/01/20 20:30ID:bMctycyz
Redhat8.0でiccを使っていて、 __bswap_32
がらみのエラーでコンパイルが落ちてしまうこと
が良くありました。

それで、
ttp://sources.redhat.com/ml/bug-glibc/2002-11/msg00083.html
を元に調べて
/usr/include/bits/byteswap.h
のパッチ(のつもり)をUプします。

--- byteswap.h.orig 2003-01-20 19:36:19.000000000 +0900
+++ byteswap.h 2003-01-20 20:12:42.000000000 +0900
@@ -81,7 +81,7 @@
__v; }))
# endif
#else
-# define __bswap_16(x) \
+# define __bswap_32(x) \
(__extension__ \
({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))
#endif
0511login:Penguin03/01/22 15:40ID:18w++Puz
>>507は何にも知らんただの厨房だろ
makeとか./configureするだけの香具師ね
051250503/01/22 21:54ID:4zktGZrC
>>511
まあそう言うな。
俺も何も知らんインストール厨なんで。
0513login:Penguin03/01/29 03:17ID:B2bNW6rC
>>351で cray_u さんが薦めてた
テキストみながらいろいろ試してみた。
早くなったり早くならなかったり。
物理レジスタの本数やキャッシュサイズかなり小さいパラメータが
一番はやかったりで結構謎です。
これから LU に挑戦します。
051451303/01/29 03:35ID:B2bNW6rC
あぅ、訂正。
s/かなり小さい/から想定されるよりかなり小さい/

あと、初歩的な質問であれなのだけれど、
ifc で適当な範囲の乱数えるのってどうすればいいのかな?
g77 だと a(i,j)=mod(irand(),100) てなかんじで、
適当に型変換して double な a(i,j) に代入できてたんだけど、
ifc だと a(i,j)=drand() 以外実行してもアドレスエラーとかおこられし、
drand() にしても乱数の系列を回してくれなくて、
1つの種に対して1つの乱数しか生成してくれない。
普段は C のひとなのでこのへんの作法がよくわからないっす。
0515crazy_u03/01/29 12:54ID:BGnuMacz
>>514
私は,「Fortran77による数値計算ソフトウェア」(丸善)に収録されているベクタ計算機用のコードを使用してます.
一様乱数用のプログラム(コメント文込みで60行程度)をこの板に貼り付けますか?
(著作者を明記すれば自由に使用できたはず.確認します.)
0516login:Penguin03/01/29 13:22ID:ilG7zVvW
>crazy_u

一様乱数とかLUとかお願いします。一般的なコードだから
転載Okのはずです。

あとはCだなー
0517crazy_u03/01/29 14:43ID:BGnuMacz
>>516
今,会社で仕事中なので,家に帰ってから貼り付けます.
LUは多少長くなるので,貼付けると他の人の迷惑かもしれませんね。
どこかのサイトにあるはずだから,家に帰ってから探してみます.
0518crazy_u03/01/29 23:05ID:VZTGGwTZ
一様乱数のプログラムです.幾つかにわけて貼ります.
貼り付けるときに行頭のスペースが詰まってしまったら自分で調整して下さい.

subroutine rand3d( n , x , ir , icon )
************************************************************************
* original name is urand3 *
* modefied by crazy_u *
* uniform random number generator (multiplicative congruential method) *
* vectorizable algorithm *
* fast but not completely portable. integers should be 32 bit long.*
* overflow in interger arithmetic should not be sensed. *
* bitwise and function 'iand(ia,ib)' should be vectorized. *
* parameters *
* (1) n (i) the number of random numbers to be generated (input ) *
* (2) x (d) uniform random numbers (output) *
* (3) ir (i) the initial seed (input ) *
* the seed for the next call (output) *
* copyright: Y. Oyanagi, April 30, 1992 v.2 *
* modefied : crazy_u , May 4, 2002 *
************************************************************************
0519crazy_u03/01/29 23:06ID:VZTGGwTZ
implicit integer*4(i-n), real*8(a-h,o-z)
c
parameter(mm = 1024)
double precision x(n), invm
integer lam(mm)
save lam
parameter (lambda = 48828125, mask=2**30+(2**30-1) )
parameter (invm = 0.5d0 ** 31)
c
icon=0
c --- paremeter check ---
if( n<=0 ) then
write(6,*) '(subr.rand3d) parameter error. n = ', n
write(6,*) 'return with no further calculation.'
icon=1000
goto 9999
end if
if( mod(ir,2)==0 ) then
write(6,*) '(subr.rand3r) parameter error. ir = ', ir,
$ ' is even.'
write(6,*) 'return with no further calculation.'
icon=2000
goto 9999
end if
0520crazy_u03/01/29 23:07ID:VZTGGwTZ
c
c --- initial setting ---
if(lam(1) /= lambda) then
lam(1)=lambda
do 10 i=2, mm
10 lam(i)=lam(i-1)*lambda
end if
c
c --- main loop ---
do 30 ii = 1, n, mm
c do 20 i=ii, min(ii+mm, n)
do 20 i=ii, min(ii+mm-1, n)
x(i) = iand(ir*lam(i-ii+1), mask) * invm
20 continue
30 ir=ir*lam(i-ii)
c
9999 return
end
0521crazy_u03/01/29 23:33ID:VZTGGwTZ
Fortran77 のfreeのライブラリは例えば
http://phase.etl.go.jp/mirrors/netlib/slatec/

戸川隼人著「科学技術計算ハンドブック」(サイエンス社)のソースコード(C言語)は
http://www.mscom.or.jp/~tog/anna/
から入手可能です.
上記2サイトともバンド法のLU分解のソースは入っています.
スカイライン法のLU分解のオープンソースはちょっと心当たりがありません.
(原子力研究所がオープンにしていたようですがサイトが今すぐにはわかりません.)
052251303/01/30 03:47ID:nMBR86n0
いろいろどうもです。
FORTRAN って乱数は標準ライブラリとか使わないんですね。
それと、お名前も間違っていたようでごめんなさい。
0523login:Penguin03/01/30 05:13ID:8QLnsZcw
皆さん!極東板で新プロジェクト始動です。
よかったら覗いてください

〜極東板最大プロジェクト2〜

日本の明日を考えよう!行動しよう!
2003年、デフレ不況、莫大な財政赤字、深刻な失業問題
緊迫の半島情勢、祖国日本が危ない!
心あるチャネラーよ!今こそ結集せよ!

本スレhttp://tmp.2ch.net/test/read.cgi/asia/1043759979/l50
前スレhttp://tmp.2ch.net/test/read.cgi/asia/1042899935/l50
党名投票所http://members.tripod.co.jp/WGIP/vote.html
党結成準備HPhttp://members.tripod.co.jp/WGIP/index.html

第一回日本国民党(仮)党大会in靖国神社

1.日時 2月11日(火)10:00〜
2.場所 靖国神社遊就館喫茶店前
3.資金 各自任せる
0524crazy_u03/01/31 18:46ID:BwxWQL3f
>>522
multi frontal法ならば,
http://www3.pt.freebsd.org/ja/ports/math.html
のなかのumfpack(Fortran90,非商用)があります.ここには他にも色々なライブラリがありますの覗いてみると良いかと思います.
バークレー大学のサイトには superLU (C, open sourceだったはず)があります.
YahooのUSAのサイトに入って検索すればすぐに見つかります.
私はダウンロードしただけで,まだ中身は見てませんが,sparse matrixのreordering法であるminimam-degreeやpseudo-minimum-degreeを使わないと良い効果が期待できないようです.
SMP用の直接法の解法として,改良しようと思っています.(不安定現象を扱っているので、反復解法は発散して使えない場合が多いので.)
0525crazy_u03/01/31 19:09ID:BwxWQL3f
http://www.nersc.gov/~xiaoye/SuperLU/#superlu
ここには,SuperLUの single CPU用,SMP用,分散メモリ用がありました.
0526おむこさん志望 ◆QtGqCwfDSA 03/02/01 00:34ID:Pkkg2qqH
>>514
メルセンヌツイスター法っていう疑似乱数生成アルゴリズムがあるよ。
rand(3) とかで使われてる線形合同法よりはずっとよさげだけど。
http://www.math.keio.ac.jp/~matumoto/mt.html
( C だけじゃなくてJava や Fortran のコードもある )
http://www.soi.wide.ad.jp/class/20010000/slides/03/
参考 数学板のスレ
http://science.2ch.net/test/read.cgi/math/1025794170/
0527login:Penguin03/02/01 03:45ID:8j0FsFHn
gccでいうならlibg2c.aみたいにiccでもcで作ったライブラリとリンクすることってできないんですか?
それっぽいライブラリが見つからないんですけど・・・
0528login:Penguin03/02/01 03:53ID:8j0FsFHn
>527
すんません。意味わかりませんね。これじゃ。
言いたかったのは
fortranのオブジェクトファイルとcのライブラリファイルをiccでリンクさせたいんですが
そのような事はできますか?
ということです。
0529crazy_u03/02/01 11:01ID:W/8HR9Dw
>>528
できます.サブルーチン加工名とそのヘッダーファイルに気をつけてください.
例) subroutine abc( a ) (aはreal*8 a(1:*) とする.)がlibsub.aにコンパイルして入っている場合.
ヘッダーファイルは
void abc_( double *a );
とし,Cからは,
double a[100];
abc_( a );
ととして,参照ライブラリにlibsub.aを指定すれば良い.fortranでsubroutine abc が abc_ という名前に加工されることに注意してください.
(名前の加工の仕方をfortran側のコンパイルオプションで指定することもできたはずです.Cでは加工されない.)
アドレス渡しを行うので,Cから渡す変数の型とFortranで受ける変数の型が同じである必要はありません.(ここを利用して型をキャストする利用もありかな.)
まあ,試しにやって見ることです.細かい部分はやりながら,修正していくべし.
0530crazy_u03/02/01 11:07ID:W/8HR9Dw
>>528
同じライブラリに入れたいということでしたか?
単純に,arコマンドで入れてしまえば良いでしょう.
0531crazy_u03/02/01 12:45ID:W/8HR9Dw
>>528
mainがCなら,    LD=icc
mainがFortranなら, LD=ifc
0532login:Penguin03/02/01 14:23ID:8j0FsFHn
>crazy_uさん
丁寧にありがとうございます。m(_ _)m

私の説明が言葉足らずで申し訳ないですが、もう少し初歩的な事をお聞きしたいんです。
今までgccでのlinkは出来ていたのですがiccを使うのが初めてでして。

fortranのmain と arで固めたCの lib***.aのファイルとをiccでリンクさせたいんです。
gccをlinkerにしていたときはlibg2c.aというライブラリを使っていたんですけど
iccにも同様なライブラリがあるんでしょうか?ということなんです
>531
なにもLDFLAGSで設定しなくてもlinkできるのでしょうか?
何も設定しないでやってみたんでが(srcはgccで使っていたのと同じ物)
cのライブラリを参照できないんです。
0533login:Penguin03/02/01 15:00ID:Drz/L+OH
>>526

Cで書かれた、
http://sources.redhat.com/gsl/
というものもあります。メルセンヌツイスター法も含まれてます。

マニュアル 
http://sources.redhat.com/gsl/ref/gsl-ref_toc.html
0534crazy_u03/02/01 15:38ID:CQVkGRt0
>>532
リンクしたい関数が有るかどうかは,iccのライブラリのマニュアルを見るか,
/opt/intel/compiler70/ia32/libにあるライブラリを片っ端から
ar -t なんとか.a や grep リンクしたい関数名 で調べたらどうですか.
どちらにしてもLDOPTIONSに指定してないとつかない場合が有る.
MAIN=Main
PATH1=.
FC=ifc
LD=ifc
LDOPTIONS= -L/usr/lib/gcc-lib/i386-redhat-linux/2.96 -lgc2
$(MAIN): $(MAIN).o /usr/lib/gcc-lib/i386-redhat-linux/2.96/libg2c.a
 タブ $(LD) [email protected] $(LDOPTIONS) -o $(PATH1)/$@
みたいに./opt/intel/compiler70/ia32/libに有るライブラリも私は明示的にLDOPTIONSに指定してます.
(ifc6.0の時に,LD_LIBRARY_PATHに設定しているのにうまくつかなかったから)
Intelで用意しているライブラリやリンクオプションについてはマニュアルを読んでください.
Makefileの書き方は,GNU makeについて自分で調べてください.
私は,Cのライブラリである/lib/libpthread-0.9.so をメインがFortranでリンクしてます.
0535login:Penguin03/02/01 23:54ID:MMls/KkV
Mobile Pentium 3 750Mhzで、コンパイルオプションは>>16と同じ。

C compiler : icc (unknown version)
libc : unknown version
MEMORY INDEX : 4.588
INTEGER INDEX : 3.500
FLOATING-POINT INDEX: 7.375

C compiler : gcc version 2.95.3 20010315 (release)
libc : unknown version
MEMORY INDEX : 3.311
INTEGER INDEX : 3.330
FLOATING-POINT INDEX: 6.508
053653203/02/02 00:50ID:2IbS21LR
>crazy_u
どうもありがとうございましたm(_ _)m
もう少し色々と試してみます。
0537crazy_u03/02/02 19:22ID:hawsmNOt
>>536
念のために
Fortran側からCの関数を
call abcd( 引数 )
とすると, abcd_ という名前の関数をコールしていることになるので,abcdというCの関数を呼ぶ場合は,
Cで abcd_ という関数を作ってその中で,本当に呼びたい abcd を呼ぶようにしないと使えません.
オプションで加工名のつけ方を指定すれば解決できるのかも知れませんが,移植性を考えて私は標準でこのようにしてます.
053851403/02/05 15:57ID:rIMlmH0y
遅レスですが、
>>526,533
情報どうもです。

行列演算のテスト用に乱数がほしいだけなので、
たぶんそんなに乱数の質は気にしなくても大丈夫だとは思います。

とりあえず、今日卒論の発表してきました。
このスレをみなかったらおいらの卒論はなかったよ。
どうもでした。

ま、卒論自体は
寒川さんの本の縮小再生産ってかんじだけどね。
0539login:Penguin03/02/08 13:36ID:w9ImhrFr
The following new information is now available at
Intel's Premier Support Web Site.
For more details please point your browser to
https://premier.intel.com

NEW for product: Intel C++ Compiler, Linux LtdSup

FILES AVAILABLE FOR DOWNLOAD

Tar file containing the Intel(R) C++ Compiler 7.0 for Linux*
v7.0 Product Update. The package id is l_cc_pu_7.0.082.
ICC Build 20030129Z, ECC Build 20030129.
0540login:Penguin03/02/11 20:50ID:4i3cK38F
このスレの先頭の3,4,5の記事は既に時代遅れ。
今はもっと簡単にインストールできます。
ifc も icc もFreeBSD用のversion6 のコンパイラのパッケージも
あるようですよ。今の最新版はVersion7です。
0541login:Penguin03/02/16 03:13ID:kgJUQrNa
以下のようなコードを書くと、
gccだと(ver 3.2, ver 2.9.6)だと通るのだけど、
icc 7.0.065だと

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>

using namespace std;

struct sockaddr_in target;
target.sin_port = htons(PORT); // ← この行が
^
error: Unsupported feature: GNU statement expression in C++
error: expected a ")"
error: expected a ";"
とエラーを吐きます。

どうすれば回避できるのか、ご指導いただけないでしょうか?
054254103/02/16 18:03ID:kgJUQrNa
自己レス

ttp://sources.redhat.com/ml/bug-glibc/2002-11/msg00083.html
どうやらglibcのbugらしい。
Redhat 7.3までだと通るが、RedHat 8.0だとエラーが発生。
(上記のコードでは書き忘れていたが) #include <netinet/net.h>
の中で呼び出される byteswap.h の __bswap_16, __bswap_32の定義が間違っているらしい。
以下のコードは__GNUC__が定義されない場合、
つまりgcc以外のコンパイラを使用する際に使用される部分である。

/usr/include/bits/byteswap.hを

/* original (line 45-47)
# define __bswap_16(x) \
(__extension__ \
({ register unsigned short int __x = (x); __bswap_constant_16 (__x); }))
*/
# define __bswap_16(x) __bswap_constant_16 (x)

/* original (line 84-86)
# define __bswap_16(x) \
(__extension__ \
({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))
*/
# define __bswap_32(x) __bswap_constant_32 (x)

と修正するとコンパイルが通る。
つーか、line84-86の__bswap_16 → __bswap_constant_32の間違いはひでーよ。
RedHat8.0のupdateはまだで、
RawHide版のglibc-develに置き換えるとこの問題は解決されるっぽい。
0543login:Penguin03/02/17 23:43ID:KRtfXogi
ニヤニヤ(・∀・)
0544login:Penguin03/02/20 04:24ID:NjiabX2T
ニヤニヤ(・∀・)
0545login:Penguin03/02/25 01:08ID:uB5MBDWS
iccって個人使用ならまだ無料?
0546login:Penguin03/02/25 22:27ID:F5NmfAFa
-------------------------------------------------------
NEW for product: Intel(R) C++ Compiler, Linux LtdSup

FILES AVAILABLE FOR DOWNLOAD

Release notes for IntelC++ Compiler 7.0 for Linux.


File: l_cc_pu_7.0.086_RN.zip
File: l_cc_pu_7.0.086.tar


-------------------------------------------------------
NEW for product: Intel(R) Fortran Compiler for Linux*

FILES AVAILABLE FOR DOWNLOAD

Release notes for IntelFortran Compiler 7.0 for Linux.


File: l_fc_pu_7.0.087_RN.zip
File: l_fc_pu_7.0.087.tar
0547login:Penguin03/02/26 19:19ID:MAjrYlXD
すみません、入手方法が分からないのですが、どなたか教えて頂けないでしょうか?
buy か free evalution しかないように見えるのですが…
054854703/02/26 23:39ID:MAjrYlXD
やっと分かりました。ココですね。
ttp://developer.intel.com/software/products/compilers/flin/noncom.htm
0549login:Penguin03/03/02 23:20ID:LCrGqD3x
intel のコンパイラのソースコード公開希望。
0550login:Penguin03/03/03 01:18ID:oI3oBWnP
ちょっと前にレイトレーシングの話題が出てたので一言。
昔、MSXで紹介されてたレイトレーシングのプログラムが
C++で復活してました。
本来Windows用なのですが他マシンでも使えるようにソースが公開されてます。
GCCの事例はあるのですがIntelコンパイラで試してみてください。
http://www5e.biglobe.ne.jp/~liquor/raytrace/
ここの掲示板で語られています。Itaniumのことも報告されています。
0551login:Penguin03/03/03 01:45ID:yePrqlHM
l_cc_p_7.0.065.tar
を入れた後に
l_fc_p_7.0.064.tar
を入れようとすると、

[root@hoge lfc7]# rpm -i --test intel-ifc7-7.0-64.i386.rpm
ファイル /opt/intel/compiler70/ia32/bin/profmerge (intel-ifc7-7.0-64のインストールから) は, パッケージ intel-icc7-7.0-65 からのファイルと競合しています
ファイル /opt/intel/compiler70/ia32/bin/proforder (intel-ifc7-7.0-64のインストールから) は, パッケージ intel-icc7-7.0-65 からのファイルと競合しています
...
と言われるのだが、無理矢理つっこんで大丈夫ですかね?

名前がかぶってるだけじゃなくて実際ファイルの内容も違うみたい。

0552crazy_u03/03/03 22:22ID:kyfkjG7i
>>551
つっこんじゃ駄目!!
新l_cc_*と旧l_fc_*ではライブラリが新旧になって競合してしまう.日付を良く確認すること.
l_cc_*とl_fc_*はいつも同時に公開されて,大抵は,末尾の数字はl_ccの方が1〜2少ないはず.
そんな古いパッケージを入れずに,l_cc_pu_7.0.086.tarとl_fc_pu_7.0.087.tarをダウンロードして入れましょう.
0553login:Penguin03/03/04 18:25ID:b9XWyKWE
l_cc_pu_7.0.086.tarとl_fc_pu_7.0.087.tar てどこにあるの?

registering のメールに書いてあるアドレスから行けるftp サーバー
[ftp://download.intel.com]
探してみたけど無かった。

intel の製品を買って登録しないとだめとか?
0554crazy_u03/03/04 19:37ID:B34pJ2VL
>>553
460の書込み読んでください.
■ このスレッドは過去ログ倉庫に格納されています