previous | contents | next

Chapter 44½ The CRAY-1 Computer System -751


Table 3 Execution Time in Clock Periods per Result for Various Simple DO Loops of the Form

DO 10 I = 1,N

10 A(I) = B(I)

Loop body

N=1

10

100

1000

1000 Scalar

1. A(I) = 1.

41.0

5.5

2.6

2.5

22.5

2. A(I) = B(I)

44.0

5.8

2.7

2.5

31.0

3. A(I) = B(I) + 10.

55.0

6.9

2.9

2.6

37.0

4. A(I) B(I) + C(I)

59.0

8.2

3.9

3.7

41.0

5. A(I) = B(I)*10.

56.0

7.0

2.9

2.6

38.0

6. A(I) = B(I)*C(I)

60.0

8.3

4.0

3.7

42.0

7. A(I) = B(I)/10.

94.0

10.8

4.1

3.7

52.0

8. A(I) = B(I)/C(I)

89.0

13.3

7.6

7.2

60.0

9. A(I) = SIN(B(I))

462.0

61.0

33.3

31.4

198.1

10. A(I) = ASIN(B (I))

430.0

209.5

189.5

188.3

169.1

11. A(I) = ABS(B (I))

61.0

7.5

2.9

2.6

12. A(I) = AMAX1(B(I), C(I))

80.0

11.2

5.2

4.8

 

13.

C(I) = A(I) {A(I) = B(I) } B(I) = C(I)

90.0

12.7

6.3

5.8

47.0

14. A(I) = B(I)*C(I) + D(I)*E(I)

110.0

16.0

7.7

7.1

57.0

15. A(I) = B(I)*C(I) + (D(I) *E(I))

113.0

14.7

6.6

6.0

63.0

16. A(I) = B(I)*C(I) + D(I)

95.0

12.7

5.5

5.0

52.0

 

overcome in Loop 15 by helping the compiler with an extra set of parentheses.


Software

At the time of this writing, first releases of the CRAY Operating System (COS) and CRAY Fortran Compiler (CFT) have been delivered to user sites. COS is a batch operating system capable of supporting up to 63 jobs in a multiprogramming environment. COS is designed to be the recipient of job requests and data files from front-end computers. Output from jobs is normally staged back to the front-ends upon job completion.

CFT is an optimizing Fortran compiler designed to compile ANSI 66 Fortran IV to take best advantage of the CRAY-1's vector processing architecture. In its present form, CFT will not attempt to vectorize certain loops which, due to dependence conditions, appear at first sight, unvectorizable.

However, future versions of CFT will be designed to eliminate as many dependency conditions as possible increasing the amount of vectorizable code. Basically, to be vectorizable, a DO loop should manipulate arrays and store the results of computations in arrays. Loops that contain branches such as GO TO's, IF's, or CALL statements are not currently vectorized. Loops may contain function references if the function is known to the compiler to have a vector version. Most of the mathematical functions in the CRAY library are vectorizable. By using the vector mask and vector merge features of the CRAY-1, future versions of the compiler will be able to vectorize loops containing IF and GO TO statements.

Early experience with CFT has shown that most Fortran loops will not run as fast as optimally hand-coded machine language equivalents. Future versions of CFT will show improved loop timings due mainly to improved instruction scheduling.

Other CRAY-1 software includes Cray Assembler Language (CAL) which is a powerful macro assembler, an overlay loader, a full range of utilities including a text editor, and some debug aids.


Front-End Computer Interface

The CRAY-1 was not designed for stand-alone operation. At the very minimum a minicomputer is required to act as a conduit between the CRAY-1 and the everyday world. Cray Research software development is currently being done using a Data

previous | contents | next