AMBER Archive (2007)

Subject: Re: AMBER: Problems with QMMM tests on Altix

From: Roberto Gomperts (roberto_at_sgi.com)
Date: Thu Mar 08 2007 - 17:39:14 CST


Hi Ross,

I thought I had sent you the info about the exceptions needed by most of
the Intel 9.1 compilers I have tested including the one mentioned by
Jarrod. In all likelihood I forgot to inform you about this. My apologies.

What I do is to change the <compile=...> instruction on top of the files
with issues, and then recreate the depends file.
These are the files I have altered:
sander/amoeba_recip.f:! <compile=RG_no_optimized>
sander/amoeba_valence.f:! <compile=RG_no_optimized>
sander/qm_link_atoms.f:! <compile=RG_no_optimized>

I (re)move the ./sander/depend file and the run makedepend on that
directory.
With these changes I can run all sander QA-tests successfully.

Thanks,
Roberto

Ross Walker wrote:
> Hi All,
>
> Thanks to Jarrod for giving me a login to his Altix.
>
> Okay this is definately a compiler bug on the part of Intel. Here is the
> effected code. The file is qm_link_atoms.f and I have inserted a few write
> statements to output the value of nlink:
>
> qmmm_struct%nlink=0
> do i=1,nbona
> ii = .false.
> jj = .false.
> do j=1,qmmm_struct%nquant
> ii=ii .or. ((ib(i)/3 + 1).eq.qmmm_nml%iqmatoms(j))
> jj=jj .or. ((jb(i)/3 + 1).eq.qmmm_nml%iqmatoms(j))
> end do
> if (ii .neqv. jj) then
>
> write(6,*) "passed test nlink before=",qmmm_struct%nlink
>
> qmmm_struct%nlink=qmmm_struct%nlink+1
>
> write(6,*) "passed test nlink after=",qmmm_struct%nlink
>
> end if
> end do
> write(6,*) "link atoms 3 nlink=",qmmm_struct%nlink
>
> With ifort 8.1 this gives as expected:
>
> passed test nlink before= 0
> passed test nlink after= 1
> passed test nlink before= 1
> passed test nlink after= 2
> passed test nlink before= 2
> passed test nlink after= 3
> passed test nlink before= 3
> passed test nlink after= 4
> passed test nlink before= 4
> passed test nlink after= 5
> passed test nlink before= 5
> passed test nlink after= 6
> passed test nlink before= 6
> passed test nlink after= 7
> passed test nlink before= 7
> passed test nlink after= 8
> link atoms 3 nlink= 8
>
> But with ifort 9.1.040 on Altix this gives:
>
> passed test nlink before= 0
> passed test nlink after= 1
> passed test nlink before= 1
> passed test nlink after= 2
> passed test nlink before= 2
> passed test nlink after= 3
> passed test nlink before= 3
> passed test nlink after= 4
> passed test nlink before= 3
> passed test nlink after= 4
> passed test nlink before= 3
> passed test nlink after= 4
> passed test nlink before= 3
> passed test nlink after= 4
> passed test nlink before= 3
> passed test nlink after= 4
> link atoms 3 nlink= 3
>
> So after 4 iterations of the loop nlink gets hoplessly corrupted.
>
> It looks like this is related to misoptimization of this file by the Intel
> compiler. The following temporary workaround should work:
>
> Edit $AMBERHOME/src/sander/depend
>
> change (line 2566)
>
> qm_link_atoms.o: qm_link_atoms.f
> $(FPP) qm_link_atoms.f > _qm_link_atoms.f
> $(FC) -c $(FOPTFLAGS) -o $@ _qm_link_atoms.f
>
> to
>
> qm_link_atoms.o: qm_link_atoms.f
> $(FPP) qm_link_atoms.f > _qm_link_atoms.f
> $(FC) -c $(FOPTFLAGS) -O2 -o $@ _qm_link_atoms.f
>
> then cd $AMBERHOME/src/
> make clean
> make
> cd ../test/
> make
>
> And this time it will hopefully work. Hopefully Intel will fix this in later
> versions of their compiler so for the moment I won't try to put a formal
> bugfix together for this as it could be tricky to work around this bug.
>
> Let me know if you have any further problems.
>
> All the best
> Ross
>
> /\
> \/
> |\oss Walker
>
> | HPC Consultant and Staff Scientist |
> | San Diego Supercomputer Center |
> | Tel: +1 858 822 0854 | EMail:- ross_at_rosswalker.co.uk |
> | http://www.rosswalker.co.uk | PGP Key available on request |
>
> Note: Electronic Mail is not secure, has no guarantee of delivery, may not
> be read every day, and should not be used for urgent or sensitive issues.
>
>
>
>

-- 
	Roberto Gomperts
	One Cabot Road			Phone: (978) 562-8851
	Hudson, MA 01749		Fax:   (978) 562-7450

----------------------------------------------------------------------- The AMBER Mail Reflector To post, send mail to amber_at_scripps.edu To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu