- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I am having some problems using the -ipo flag for the compilation of ACESII, a quantum chemistry package.
The program compiles, links, and runs quite readily using the following compiler flags:
I was interested in the effect of full interprocedural optimization and so tried to compile with -ipo in
place of -ip (along with xiar instead of ar so that the libraries would build properly). Most of the
executables which comprise the package build properly and run; however, a few (those I'm most interested
in optimizing) end abruptly during the second invocation of the compiler as recorded below.
A little monitoring showed that the problem was memory. Though the system has ~12GB memory and
~8GB swap (and at least half of the former and all of the latter is free at the beginning of a
compilation), ifort consumes all the memory, then terminates, releasing it. The following shows
memory use just before and just after the termination (all units MB).
I tried replacing -ipo with -ipo-separate in case the job was just too large for one IR file. The
output gave the appearance of doing more, but terminated with the same memory pattern. The file it
seems to be stuck on, saxpy.f is actually in one of the linked libraries (-llibr).
I read that -ipo and -static don't interact well, so I also tried a compilation with the static flag
removed, but that produced the same result as above. As a stab in the dark, I also tried compiling with
a limited (~12MB) stacksize instead of unlimited. Same result. I've kept the compile and linker flags
matched throughout (i.e., ifort $FLDFLAGS -c $SRC and ifort $FLDFLAGS -o $OBJ $LIB) so I don't think
internal mismatch is the problem. If anyone can suggest what I'm doing wrong or another flag that has
the effect of not optimizing quite so well yet finishing, I would be greatly
appreciative. The system is an Altix 35 0 running RHEL 3 (SGI PP3/SP6) and Intel compilers F: 9.0.033
and C: 9.0.032.
Thanks,
Lori Burns
I am having some problems using the -ipo flag for the compilation of ACESII, a quantum chemistry package.
The program compiles, links, and runs quite readily using the following compiler flags:
ifort -O3 -i8 -ftz -zero -Zp8 -ip -static -parallel
I was interested in the effect of full interprocedural optimization and so tried to compile with -ipo in
place of -ip (along with xiar instead of ar so that the libraries would build properly). Most of the
executables which comprise the package build properly and run; however, a few (those I'm most interested
in optimizing) end abruptly during the second invocation of the compiler as recorded below.
make[1]: Entering directory `/home/loriab/aces2/ecc'
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c antifock.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c ch93.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c checksum.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c ddenom.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c dotripit1.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c dotripit2.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c ecc.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c fcmask.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c finish.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c formw11.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c formw12.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c formwr.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c init2.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c maskt.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c mkhxbar1.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c mkilst.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c modf2.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c nhffint2.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c nhffint.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c prep54.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c reset2.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c setmet.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c tripnit.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c vcc.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -fpp -w95 -cm -c z1tomo.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo -parallel -static -L. -L../lib -o ../bin/xecc antifock.o ch93.o
checksum.o ddenom.o dotripit1.o dotripit2.o ecc.o fcmask.o finish.o formw11.o formw12.o formwr.o
init2.o maskt.o mkhxbar1.o mkilst.o modf2.o nhffint2.o nhffint.o prep54.o reset2.o setmet.o
tripnit.o vcc.o z1tomo.o -lecctrip -llibrcc -llibr -Bdynamic -lscs_i8_mp
IPO: performing multi-file optimizations
IPO: generating object file /tmp/ipo_ifortLEmB3N.o
ifort: error: Fatal error in /opt/intel/fc/9.0/bin/fortcom, terminated by kill signal
ifort: error: problem during multi-file optimization compilation (code 1)
make[1]: *** [../bin/xecc ] Error 1
make[1]: Leaving directory `/home/loriab/aces2/ecc'
A little monitoring showed that the problem was memory. Though the system has ~12GB memory and
~8GB swap (and at least half of the former and all of the latter is free at the beginning of a
compilation), ifort consumes all the memory, then terminates, releasing it. The following shows
memory use just before and just after the termination (all units MB).
total used free shared buffers cached
Mem: 11677 11647 30 0 0 33
-/+ buffers/cache: 11613 64
Swap: 7551 7551 0
total used free shared buffers cached
Mem: 11677 2685 8992 0 0 81
-/+ buffers/cache: 2604 9073
Swap: 7551 1930 5621
I tried replacing -ipo with -ipo-separate in case the job was just too large for one IR file. The
output gave the appearance of doing more, but terminated with the same memory pattern. The file it
seems to be stuck on, saxpy.f is actually in one of the linked libraries (-llibr).
ifort -O3 -i8 -ftz -zero -Zp8 -ipo-separate -parallel -static -fpp -w95 -cm -c antifock.f
ifort -O3 -i8 -ftz -zero -Zp8 -ipo-separate -parallel -static -fpp -w95 -cm -c ch93.f
...
ifort -O3 -i8 -ftz -zero -Zp8 -ipo-separate -parallel -static -L. -L../lib -o ../bin/xecc antifock.o
ch93.o checksum.o ddenom.o dotripit1.o dotripit2.o ecc.o fcmask.o finish.o formw11.o formw12.o formwr.o
init2.o maskt.o mkhxbar1.o mkilst.o modf2.o nhffint2.o nhffint.o prep54.o reset2.o setmet.o tripnit.o
vcc.o z1tomo.o -lecctrip -llibrcc -llibr -Bdynamic -lscs_i8_mp
IPO: performing multi-file optimizations
IPO: generating object file /tmp/ipo_ifortPTL59o.o
IPO: starting multi-object compilation
IPO: generating object file /tmp/ipo_ifortPTL59o1.o
IPO: starting multi-object compilation
...
despinad3.f(78) : (col. 13) remark: LOOP WAS AUTO-PARALLELIZED.
t3t1rhf.f(72) : (col. 10) remark: LOOP WAS AUTO-PARALLELIZED.
t3t1rhf.f(111) : (col. 10) remark: LOOP WAS AUTO-PARALLELIZED.
t3t1rhf.f(150) : (col. 10) remark: LOOP WAS AUTO-PARALLELIZED.
saxpy.f(65) : (col. 10) remark: LOOP WAS AUTO-PARALLELIZED.
saxpy.f(65) : (col. 10) remark: LOOP WAS AUTO-PARALLELIZED.
saxpy.f(65) : (col. 10) remark: LOOP WAS AUTO-PARALLELIZED.
saxpy.f(65) : (col. 10) remark: LOOP WAS AUTO-PARALLELIZED.
saxpy.f(65) : (col. 10) remark: LOOP WAS AUTO-PARALLELIZED.
ifort: error: Fatal error in /opt/intel/fc/9.0/bin/fortcom, terminated by kill signal
ifort: error: problem during multi-file optimization compilation (code 1)
make: *** [../bin/xecc] Error 1
I read that -ipo and -static don't interact well, so I also tried a compilation with the static flag
removed, but that produced the same result as above. As a stab in the dark, I also tried compiling with
a limited (~12MB) stacksize instead of unlimited. Same result. I've kept the compile and linker flags
matched throughout (i.e., ifort $FLDFLAGS -c $SRC and ifort $FLDFLAGS -o $OBJ $LIB) so I don't think
internal mismatch is the problem. If anyone can suggest what I'm doing wrong or another flag that has
the effect of not optimizing quite so well yet finishing, I would be greatly
appreciative. The system is an Altix 35 0 running RHEL 3 (SGI PP3/SP6) and Intel compilers F: 9.0.033
and C: 9.0.032.
Thanks,
Lori Burns
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Lori,
I am sure that Intel Premier Support would appreciate having a test case that reproduces your problem.
I am sure that Intel Premier Support would appreciate having a test case that reproduces your problem.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page