Unix Technical Forum

Fortran 4GB limitation on AIX 5.x

This is a discussion on Fortran 4GB limitation on AIX 5.x within the AIX Operating System forums, part of the Unix Operating Systems category; --> Hi folks, given the following fortran code example: $ cat a.f90 implicit none INTEGER, PARAMETER :: n1 = 3650 ...


Go Back   Unix Technical Forum > Unix Operating Systems > AIX Operating System

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 01-05-2008, 12:14 PM
Hajo Ehlers
 
Posts: n/a
Default Fortran 4GB limitation on AIX 5.x

Hi folks,
given the following fortran code example:

$ cat a.f90
implicit none
INTEGER, PARAMETER :: n1 = 3650
INTEGER, PARAMETER :: n2 = 605
INTEGER, PARAMETER :: ny = 250000
real :: p2(n2,ny)
real :: p1(n1,ny)
real :: a2(n2), a1(n1)
integer :: iy,i1,i2

DO iy = 1, ny
do i2 = 1, n1
a2(i2) = -8.0*i2
enddo
DO i2 = 1, n2
p2(i2,iy) = a2(i2)
END DO
ENDDO

do iy = 1, ny
DO i1 = 1, n1
p1(i1, iy) = 3.*p2(1,iy) + 4*p2(3,iy)
ENDDO
enddo
do iy = 1, ny
DO i1 = 1, n1
a1(i1) = p1(i1,iy)
ENDDO
ENDDO
write (*,*) 'done'
stop
end


Compile with ( xlf 10 )
$ xlf90 a.f90 -o2 -q64 -b64 -o a.out

../a.out runs fine using about 4GB of memory ( using nmon ) but as soon
as i increase n1 to 3700 the program crashed with an segmentation
fault right away.

Tested on
- AIX 5.3 (64bit) with 4GB ram & 4GB paging space ( xlf 10 )
- AIX 5.1 (64bit) with 16GB ram & 16 GB paging space. ( xlf 8)

Its looks like that i hit a 4GB limitation but i could not found any
information regarding a 4GB limitation on fortran or aix. BTW: ulimit
is set to unlimited.

Hajo

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 01-05-2008, 12:14 PM
Patrick Begou
 
Posts: n/a
Default Re: Fortran 4GB limitation on AIX 5.x

This program runs without any problem on my server, whith n1=3650 and
n1=3750 and I've also tried n1 = 4750 ;-)

begou@mach4: ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 4194304
memory(kbytes) unlimited
coredump(blocks) 2097151
nofiles(descriptors) unlimited

AIX 5.2 /8GB RAM
xlfcmp 8.1.1.4

xlf -O3 -q64 ess.f
../a.out
done

It is not a fortran limitation.

Patrick

Hajo Ehlers wrote:
> Hi folks,
> given the following fortran code example:
>
> $ cat a.f90
> implicit none
> INTEGER, PARAMETER :: n1 = 3650
> INTEGER, PARAMETER :: n2 = 605
> INTEGER, PARAMETER :: ny = 250000
> real :: p2(n2,ny)
> real :: p1(n1,ny)
> real :: a2(n2), a1(n1)
> integer :: iy,i1,i2
>
> DO iy = 1, ny
> do i2 = 1, n1
> a2(i2) = -8.0*i2
> enddo
> DO i2 = 1, n2
> p2(i2,iy) = a2(i2)
> END DO
> ENDDO
>
> do iy = 1, ny
> DO i1 = 1, n1
> p1(i1, iy) = 3.*p2(1,iy) + 4*p2(3,iy)
> ENDDO
> enddo
> do iy = 1, ny
> DO i1 = 1, n1
> a1(i1) = p1(i1,iy)
> ENDDO
> ENDDO
> write (*,*) 'done'
> stop
> end
>
>
> Compile with ( xlf 10 )
> $ xlf90 a.f90 -o2 -q64 -b64 -o a.out
>
> ./a.out runs fine using about 4GB of memory ( using nmon ) but as soon
> as i increase n1 to 3700 the program crashed with an segmentation
> fault right away.
>
> Tested on
> - AIX 5.3 (64bit) with 4GB ram & 4GB paging space ( xlf 10 )
> - AIX 5.1 (64bit) with 16GB ram & 16 GB paging space. ( xlf 8)
>
> Its looks like that i hit a 4GB limitation but i could not found any
> information regarding a 4GB limitation on fortran or aix. BTW: ulimit
> is set to unlimited.
>
> Hajo
>

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 01-05-2008, 12:14 PM
Hajo Ehlers
 
Posts: n/a
Default Re: Fortran 4GB limitation on AIX 5.x

On 6 Feb., 18:05, Patrick Begou <Patrick.Be...@hmg.inpg.fr> wrote:
> This program runs without any problem on my server, whith n1=3650 and
> n1=3750 and I've also tried n1 = 4750 ;-)
>

....
>
> xlf -O3 -q64 ess.f
> ./a.out
> done


Hi Patrik,
if i use your command line i get errors because the xlf can not
compile f90 code. So its looks like that your xlf is somehow linked to
xlf90. Could you verify this.

tia
Hajo

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 01-05-2008, 12:14 PM
Patrick Begou
 
Posts: n/a
Default Re: Fortran 4GB limitation on AIX 5.x

Hajo Ehlers wrote:
> On 6 Feb., 18:05, Patrick Begou <Patrick.Be...@hmg.inpg.fr> wrote:
>
>>This program runs without any problem on my server, whith n1=3650 and
>>n1=3750 and I've also tried n1 = 4750 ;-)
>>

>
> ...
>
>>xlf -O3 -q64 ess.f
>>./a.out
>> done

>
>
> Hi Patrik,
> if i use your command line i get errors because the xlf can not
> compile f90 code. So its looks like that your xlf is somehow linked to
> xlf90. Could you verify this.
>
> tia
> Hajo
>


I alway use xlf for fortran90 codes on my AIXs boxes because most of our
files are in fixed format but embeds fortran90 statments (big codes
moving slowly from Fortran77 to Fortran90).

begou@mach4: whence xlf
/usr/bin/xlf
begou@mach4: ls -l /usr/bin/xlf
-rwxr-xr-x 11 bin bin 203232 Jan 29 2004 /usr/bin/xlf
But, yes it seems to use xlf90 befavior. In /etc/xlf.cfg I have:

xlf: use = DEFLT
libraries = -lxlf90,-lxlopt,-lxlf,-lxlomp_ser,-lm,-lc
proflibs = -L/lib/profiled,-L/usr/lib/profiled
options =
-qnozerosize,-qsave,-qalias=intptr,-qposition=appendold,-qxlf90=noautodealloc:nosignedzero,-qxlf77=intarg:intxorersistent:noleadzero:gedit77 :noblankpadldboz:softeof

Did you check your system limits with ulimit -a ?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 01-05-2008, 12:14 PM
Hajo Ehlers
 
Posts: n/a
Default Re: Fortran 4GB limitation on AIX 5.x

On Feb 7, 10:29 am, Patrick Begou <Patrick.Be...@hmg.inpg.fr> wrote:
> Hajo Ehlers wrote:

....
> xlf: use = DEFLT
> libraries = -lxlf90,-lxlopt,-lxlf,-lxlomp_ser,-lm,-lc
> proflibs = -L/lib/profiled,-L/usr/lib/profiled
> options =
> -qnozerosize,-qsave,-qalias=intptr,-qposition=appendold,-qxlf90=noautodealloc:nosignedzero,-qxlf77=intarg:intxorersistent:noleadzero:gedit77 :noblankpadldboz:softeof
>
> Did you check your system limits with ulimit -a ?


$ ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 4194304
memory(kbytes) unlimited
coredump(blocks) 2097151
nofiles(descriptors) unlimited

xlf options.
$ grep -wp xlf: /etc/xlf.cfg
* Original Fortran compiler
xlf: use = DEFLT
libraries = -lxlf90,-lxlopt,-lxlf,-lxlomp_ser,-lm,-lc
proflibs = -L/lib/profiled,-L/usr/lib/profiled
options = -qnozerosize,-qsave,-qalias=intptr,-
qposition=appendold,-qxlf90=noautodealloc:nosignedzero,-
qxlf77=intarg:intxorersistent:noleadzero:gedit77 :noblankpadldboz:softeof


Still i can not use the xlf for f90 code. Do you have an alias set ?
Searching the net i found something about the stacksize which is by
default limited to 4GB. But setting the stack to a larger size like:

export XLSMPOPTS="stack=83888608"

and using the

xlf90_r -qsmp ...

does not work either. Maybe it is different on AIX 5.2 and 5.3 .

Hajo


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 01-05-2008, 12:14 PM
Hajo Ehlers
 
Posts: n/a
Default Re: Fortran 4GB limitation on AIX 5.x

....
> Did you check your system limits with ulimit -a ?

Its looks like that the array is put onto the stack. The stack is
limited to 4GB thus the segmentation fault. Why it not happen on your
AIX 5.2 machine i do not know. At least increasing the stack to 8GB
solved the problem.

thanks again
Hajo

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 10:26 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com