Re: Commutative law in addition in XL Fortran



On May 11, 7:40 pm, *** Hendrickson <***.hendrick...@xxxxxxx> wrote:
James Giles wrote:
robert.corb...@xxxxxxx wrote:
On May 10, 3:11 pm, "James Giles" <jamesgi...@xxxxxxxxxxxxxxxx> wrote:

(the original Cray had a non-commutative multiply and it was
so unpopular that later versions has a slightly less accurate
multiply that *was* commutative).
IIRC, the first two Cray 1's had the problem. Again IIRC, the fix was
to sort the operands, which would not affect the accuracy.

Could be. Still I seem to remember there was some sort of price
to pay. Maybe it was a clock slower. With pipelining that would
have been a minor price. Anyone know for sure?

It's been a long time. My recollection is that serial 1 had a
non-commutative multiply. It also had a memory system that only had
a simple parity check. Los Alamos had issues with both features.
Because of the problems, serial 2 was scrapped and serials 3+ were
modified to include a commutative multiply and SECDED in the memory
system. I think this added one cycle to the multiply time and one
or two to the memory time. I believe the fix was a real change to
the multiply pyramid and didn't involve sorting the operands.

You are correct. I found both a Cray-1 and a Cray-1S hardware
reference manual at http://bitsavers.org. The change to make the
multiplication commutative was to change which bits were retained for
the sum of the products of the bits.

Bob Corbett

.