Newsgroups: comp.parallel
From: Thomas James <james@emr.ca>
Subject: Stardent Titan 3000 Fortran compiler question
Organization: Natural Resources Canada, Ottawa
Date: Tue, 31 Oct 1995 21:03:38 GMT
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <DHBzu2.wL@emr1.emr.ca>

I am running into what SEEMS to be a bug when I compile a Fortran program
on our Stardent Titan 3000 mini-supercomputer.  If I compile with no 
vectorizing or parallelization, it outputs the same answer as when I run 
it on a Sun SPARC, otherwise it gives different answers, sometimes only 
slightly different (e.g. in 4th sig. digit), sometimes wildly different
(includes NaN's or Inf's).

I have identified the loop that seems to give the problem, so that if I
compile with vectorization and parallelization, but inhibit vectorization/
parallelization for that loop only, I get the 'correct' answers.

The loop is:

c       C$DOIT ASIS
            do 59 n=nmin1,nmax
              gam(n)=dble(2*n+1)/(4.d0*pi*radsur*radsur)
              xl(n)=xmass*gam(n)*(1.d0+dcos(radius(idisk)))/
     +          (dble(n)*dble(n+1)*dsin(radius(idisk)))*
     +          pn1(n)
59          continue

Aficionados will recognize the C$DOIT as the vec/par inhibitor,
which is commented out in the example above.  Variables pn1 and 
radius are pre-defined arrays, and the program has an implicit 
double precision (a-h,o-z) at the beginning.  radsur and pi are 
predefined constants.

I would appreciate hearing from anyone who has experience compiling and
running Fortran on Stardent computers.  Are there known problems with
the vec/par compiler, or is it simply that I've committed some crime to 
be avoided when vectorizing/parallelizing Fortran code?

Please respond by e-mail to james@agg.emr.ca

Thank you very much.  Tom James



