Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Re^3: Build 1.0.10.6.4.7k64 on Linux(CentOS5.8 x86_64)
Date: 2012/12/17(Mon) 22:03:10
ContributorM. Satoh < >

 生出先生,

 情報ありがとうございました。
全てのマシンのカーネルパラメータを調整をするのはしんどいので,コードの改変を待とうかと思います。

佐藤


> 現状、SADインタープリータ用内部stack pointerを32 bitとしている関係でktaloc(64 bit)でなくitaloc(32 bit)を残しているところがあります。なんとかしなければなりません。
>
>
> > >  皆様,
> > >
> > >  お世話になっております。佐藤@入射器です。
> > > どなたか,Linux環境下においてk64-1-6系のBuildiに成功した方はいらっしゃいますでしょうか?
> > >
> > >  CentOS5.8(x86_64, gcc 4.7.2)にて,1.0.10.6.4.7k64のmakeは出来たのですが,実行すると下記のエラーが出ます。
> > > (Ver.1.0.10.5.5a43は問題なく動作するのですが。)
> > >  sad.confで指定するオプションを,いろいろと(生出さんや森田さんのもの)試してみましたが,同じ結果でした。(gccも,4.3.3, 4.3.4, 4.5.1などを試しました)
> > >
> > > <12-12-06(Thu) 21:31:24><-tcsh-></usr/users/masanori/src/sad/oldsad/src/><masanori@vera>sadm
> > > *** Welcome to SAD Ver.1.0.10.6.4.7k64 built at 2012-12-06 14:15:56 +0900 ***
> > > *** Today: 21:33:28 Thursday 12/06/2012 ***
> > > cpu time= 3.8993E-02(sec) dt= 38.993(msec) free area:: 1794
> > > ffs;
> > > italoc memory allocation error 5993238088291
> > >
> > 震源地は、src/italoc.fの
> > integer*4 function italoc(n)
> > use tfstk
> > implicit none
> > integer*4 n
> > integer*8 ktaloc,ix
> > ix=ktaloc(n)
> > if(ix .ge. 2**31 .or. ix .le. 0)then
> > write(*,*)'italoc memory allocation error ',ix
> > stop
> > endif
> > italoc=int(ix)
> > return
> > end
> > です
> > 内容としては、ktaloc()が割り当てたメモリブロックのインデックス(rlist(0)から real*8単位で数えたアドレス)が
> > 2^31に収まるかどうかを調べてるので…
> >
> > Solution 1.
> > italoc() APIのアドレス域を拡張する
> >
> > Solution 2.
> > カーネルから貰うヒープ領域のアドレス域を制限する
> >
> > Solution 3.
> > 諦めて IA-32で実行する
> >
> > 辺りの対処が必要と思われます
> >
> > * afsadに関しては、カーネルパラメータを操作して (2)を実現しています
> > * amorita branch on Linuxでは、mallocの代わりにオプション付き mmapで (2)を実現


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)