- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to compile the Gaussian03 D on 64bit Xeon processor.I have compiled successfully without the option of "-parallel". However when I add this option for generate multi-threaded code, error ocured for l607.F compiling. the detail as follow:
fortcom: Severe: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
in file naoanl.f, line 322, column 22
Such error happen when I used compiler of the version of 9.1.040. While when I changed to the newest one, the version of 9.1.045, the error didn't be solved.
I don't know whether it is just an error for intel fortan compiler itself or there are something errors in the l607.F
Is there anyone who came up against this error, and howdo I deal with it?
thank a lot~!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In principle, any such internal error is a compiler bug, and you should file a problem report on premier.intel.com.
I haven't heard of anyone trying to use auto-parallel on Gaussian; I thought it would come with instructions on how to parallelize, if that is intended to be supported.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your help.Iwill repot this problem on premier.intel.com firt
While I have already successfully compiled onan ia32 machineusingauto-parallel, and it looks like working well. On an em64t machine,auto-paralle works well until subroutine "naoanl" in l607.F.
HenceI wonder if I can just make some change in l607.F, orare there any other ways to solve this problem withoutaltering compiler.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The relevant OpenMP compiler flags are already in the Gaussian make files:
PARMETH = -D_OPENMP_ -D_OPENMP_MM_
PARFLAG = -DGAUSS_PAR -DGAUSS_THPAR $(PARMETH)
PARSWITCHC = -openmp
PARSWITCH = -openmp -fpp2 -auto
I also compiled it using BLAS routines from the MKL library. Using MKL LAPACK was a bit of a problem due to the Gaussian code calling GLAMCH(), which I think corresponds to the normal LAPACK's DLAMCH().
Also, you can check the bsd/mdutil.c code and disable the following definitions to compile C routines, where Intel Fortran already has built-in versions:
#define NEED_GETPID
#define NEED_EXIT
#define NEED_UNLINK
#define NEED_AND
#define NEED_ISHFT
#define NEED_ETIME
#define NEED_FDATE
#define NEED_TIME
If you exclude these routines in mdutil.c, beware that the Intel ETIME() will give you the sum of CPU time for a parallel build, but the mdutil.c version only gives the time for a single CPU.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have modified the ia64.make:
-----------------------------------------------------------------------------------------
BLAS = /opt/intel/mkl/9.0/lib/64/libmkl_ipf.a
RUNF77SO = ifort -w -WB $(I8FLAG) -ftz $(PARSWITCH) $(DEBUGF)
RUNF77 = $(RUNF77SO) $(BSTATIC)
COMPDIR = /opt/intel/fc/9.1.043/lib
LIBS = $(BLAS) $(COMPDIR)/libcxa.a $(COMPDIR)/libcprts.a $(COMPDIR)/libunwind.a
----------------------------------------------------------------------------------------
But failed:
----------------------------------------------------------------------------------------
make[1]: Leaving directory `/opt/Gaussian/g03'
ifort -WB -i8 -r8 -w -ftz -openmp -fpp2 -auto -O3 -o g03 ml0.o util.so /opt/intel/mkl/9.0/lib/64/libmkl_ipf.a /opt/intel/fc/9.1.043/lib/libcxa.a /opt/intel/fc/9.1.043/lib/libcprts.a /opt/intel/fc/9.1.043/lib/libunwind.a
ml0.o(.text+0x4b2): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x5e2): In function `MAIN__':
: undefined reference to `fixinout_'
ml0.o(.text+0x1232): In function `MAIN__':
: undefined reference to `putenv_'
ml0.o(.text+0x12a2): In function `MAIN__':
: undefined reference to `getexen_'
ml0.o(.text+0x16e2): In function `MAIN__':
: undefined reference to `gaufls_'
ml0.o(.text+0x1712): In function `MAIN__':
: undefined reference to `gsyst_'
ml0.o(.text+0x1b72): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x1c02): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x1db2): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x1e42): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x1f42): In function `MAIN__':
: undefined reference to `ggeten_'
util.so: undefined reference to `writwa_'
------------------------------------------------------------------------------------
Would you do me a favour to help me or send the ia64.make to me?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--------------------------------------------------------------------------
cp ../bsd/mdutil.c bsd
make -f ../bsd/g03.make JUNK1=JUNK mdutil.o
bsd/mdutil.c: In function `wait_':
bsd/mdutil.c:2565: error: incompatible type for argument 1 of `wait'
make: *** [mdutil.o] Error 1
ar rlv ../util.a mdutil.o
ar: creating ../util.a
ar: mdutil.o: No such file or directory
endif
rm mdutil.o
rm: cannot remove `mdutil.o': No such file or directory
endif
-------------------------------------------------------------------------
the bsd/mdutil.c file:
#ifdef _IA64_
f77_int fork_() { return(fork()); }
f77_int wait_(ist) f77_ptr ist; {return(wait(ist)); } <-------line 2565
int stat_(path, len) char *path; int len; {struct stat buff;
char *ppath; ppath = path; return stat(ppath,&buff); }
void flush_() { fflush(stdout); }
#endif
--------------------------------------------------------------------------
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
-----------------------------------------------------------------------------
f77_int wait_(ist) __WAIT_STATUS ist; {return(wait(ist)); }
-----------------------------------------------------------------------------

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