Thread View: comp.sys.sequent
2 messages
2 total messages
Started by Gerry Pratt
Fri, 03 Feb 1989 17:06
the KAP Fortran Preprocessor
Author: Gerry Pratt
Date: Fri, 03 Feb 1989 17:06
Date: Fri, 03 Feb 1989 17:06
12 lines
883 bytes
883 bytes
We have just (!) installed the KAP preprocessor here on our Sequent I was surprised to see the the results of parallelised Fortran was different, in some cases, from the original results. Is this a real or imagined problem, has it been discussed in this newsgroup and can anyone suggest some ground rules about preparing programs for KAP. Thanks, Gerry Pratt - Workstation Support - University of KEELE NEWCASTLE - Staffordshire - ST5 5BG - ENGLAND
Re: the KAP Fortran Preprocessor
Author: ming
Date: Wed, 08 Feb 1989 15:01
Date: Wed, 08 Feb 1989 15:01
54 lines
2715 bytes
2715 bytes
In programming for parallel execution, the user has to be aware of the
potential of changing computational precision in some arithmetic
operations, in particular, the reduction operation. Reductions are
typically implemented for parallel execution by allowing each processor
to accumulate a local result, then combine the local results into the
global result at the end of the loop. The arithmetic operations are
done in a different order than the sequential program; consequently,
roundoff error is accumulated differently and the answer may differ
from the original program output. It is important to note that this
roundoff error is different than scalar, not "worse" in a mathematical
sense.
If reproducibility is important, the KAP/Sequent user can set a
ROUNDOFF switch on the command line, telling KAP to generate code that
will reproduce the same answer as the serial program at the expense of
execution speed. For instance, for the following loop:
C$DOACROSS REDUCTION(S),SHARE(a)
DO 10 i = 1,n
s = s + a(i)
10 continue
in serial mode: Computation is done in the following sequence
s = s + a(1) + a(2) + a(3) + ....
in parallel mode with 3 processors on a Sequent machine which uses static
scheduling, i.e. process 1 will be executing iteration 1,4,7...
process 2 will be executing iteration 2,5,8,...
process 3 will be executing iteration 3,6,9,...
Computation is done in the following manner:
p1 : ls1 = a(1) + a(4) + a(7) + ....
p2 : ls2 = a(2) + a(5) + a(8) + ....
p3 : ls3 = a(3) + a(6) + a(9) + ....
s = ls1 + ls2 + ls3
Precision may be changed in the process and since the order of
accumulating the result is different in concurrent mode and serial
mode, different answers may result.
If KAP is run with roundoff=0, reduction operations will be done with
an ordered critical section to ensure that the answer is accumulated in
the same order as the serial execution. Please refer to the
KAP/Sequent User's Guide for more details.
If a KAP/Sequent user has any problem or questions on using KAP, please
feel free to call the KAI customer representative at (217) 356-2288 or
send e-mail to
internet: kai@kai.com
UUCP : {uunet,ucbvax}!uiucuxc!kailand!kai
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads