Silicon Graphics and Cray Research Supercomputing Application Programming Interface
Silicon Graphics and Cray Research Supercomputing Application Programming Interface
Supercomputing Application
Programming Interface (API)
SN–2211 1.0
Copyright © 1997 Cray Research. All Rights Reserved. This manual or parts thereof may not be reproduced in any form unless
permitted by contract or by written permission of Cray Research.
Portions of this product may still be in development. The existence of those portions still in development is not a commitment of
actual release or support by Cray Research, Inc. Cray Research, Inc. assumes no liability for any damages resulting from attempts
to use any functionality or documentation not officially released and supported. If it is released, the final form and the time of
official release and start of support is at the discretion of Cray Research, Inc.
Autotasking, CF77, CRAY, Cray Ada, CraySoft, CRAY Y-MP, CRAY-1, CRInform, CRI/TurboKiva, HSX, LibSci, MPP Apprentice,
SSD, SUPERCLUSTER, UNICOS, and X-MP EA are federally registered trademarks and Because no workstation is an island, CCI,
CCMT, CF90, CFT, CFT2, CFT77, ConCurrent Maintenance Tools, COS, Cray Animation Theater, CRAY APP, CRAY C90,
CRAY C90D, Cray C++ Compiling System, CrayDoc, CRAY EL, CRAY J90, CRAY J90se, CrayLink, Cray NQS,
Cray/REELlibrarian, CRAY S-MP, CRAY SSD-T90, CRAY T90, CRAY T3D, CRAY T3E, CrayTutor, CRAY X-MP, CRAY XMS,
CRAY-2, CSIM, CVT, Delivering the power . . ., DGauss, Docview, EMDS, GigaRing, HEXAR, IOS,
ND Series Network Disk Array, Network Queuing Environment, Network Queuing Tools, OLNET, RQS, SEGLDR, SMARTE,
SUPERLINK, System Maintenance and Remote Testing Environment, Trusted UNICOS, UNICOS MAX, and UNICOS/mk are
trademarks of Cray Research, Inc.
CDC is a trademark of Control Data Systems, Inc. ETA is a trademark of ETA Systems, Inc. IBM is a trademark of International
Business Machines Corporation. IRIS, IRIX, SGI, Silicon Graphics, and Origin2000 are trademarks of Silicon Graphics, Inc. MIPS is
a trademark of MIPS Computer Systems. Motif is a trademark of the Open Software Foundation, Inc. NASTRAN is a trademark
of the National Aeronautics and Space Administration. PROCESS is a trademark of Simulation Sciences Inc.
The UNICOS operating system is derived from UNIX® System V. The UNICOS operating system is also based in part on the
Fourth Berkeley Software Distribution (BSD) under license from The Regents of the University of California.
Contents
Page
Preface ix
Related publications . . . . . . . . . . . . . . . . . . . . . . . ix
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . x
Summary [1] 1
Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
An evolving API . . . . . . . . . . . . . . . . . . . . . . . . 2
Relationship to other APIs . . . . . . . . . . . . . . . . . . . . . 2
Summary of the supercomputing API . . . . . . . . . . . . . . . . . . 3
Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
C and C++ . . . . . . . . . . . . . . . . . . . . . . . . . 5
Language libraries . . . . . . . . . . . . . . . . . . . . . . . 5
System calls and system libraries . . . . . . . . . . . . . . . . . . . 6
Parallel programming models . . . . . . . . . . . . . . . . . . . . 6
Document organization . . . . . . . . . . . . . . . . . . . . . . 7
Fortran [2] 9
Fortran language elements . . . . . . . . . . . . . . . . . . . . . 9
Common set of language extensions in the supercomputing API . . . . . . . . . 10
Source form and the character set in the supercomputing API . . . . . . . . . 10
Data objects and declarations included in the supercomputing API . . . . . . . 11
Storage association and initialization statements in the supercomputing API . . . . 12
Expressions and assignments in the supercomputing API . . . . . . . . . . 13
Boolean expressions in the supercomputing API . . . . . . . . . . . . . 13
Input/output extensions in the supercomputing API . . . . . . . . . . . . 14
SN–2211 1.0 i
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
Page
ii SN–2211 1.0
Contents
Page
Page
iv SN–2211 1.0
Contents
Page
SN–2211 1.0 v
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
Page
Math functions . . . . . . . . . . . . . . . . . . . . . . . . . 97
UNICOS/mk and UNICOS calls included in the supercomputing API . . . . . . . 97
UNICOS/mk and UNICOS calls not included in the supercomputing API . . . . . . 98
Multithreaded process support . . . . . . . . . . . . . . . . . . . . 98
UNICOS calls not included in the supercomputing API . . . . . . . . . . . . 99
Networking routines . . . . . . . . . . . . . . . . . . . . . . . 100
UNICOS/mk and UNICOS calls not included in the supercomputing API . . . . . . 100
Miscellaneous calls . . . . . . . . . . . . . . . . . . . . . . . . 101
UNICOS/mk and UNICOS calls that are being ported to the IRIX system and are included in
the supercomputing API . . . . . . . . . . . . . . . . . . . . . 101
UNICOS/mk and UNICOS calls that are being ported to the IRIX system and are not included
in the supercomputing API . . . . . . . . . . . . . . . . . . . . 101
UNICOS/mk and UNICOS calls not included in the supercomputing API . . . . . . 101
Individual system call differences . . . . . . . . . . . . . . . . . . . 105
UNICOS/mk and UNICOS differences . . . . . . . . . . . . . . . . . 105
vi SN–2211 1.0
Contents
Page
Index 115
Figures
Figure 1. The supercomputing API . . . . . . . . . . . . . . . . . . 4
Related publications
The following Cray Research documents contain additional information that
may be helpful:
• CF90 Commands and Directives Reference Manual, publication SR–3901
• Fortran Language Reference Manual, Volume 1, publication SR–3902
• Fortran Language Reference Manual, Volume 2, publication SR–3903
• Fortran Language Reference Manual, Volume 3, publication SR–3905
• CF90 Ready Reference, publication SQ–3900
• Intrinsic Procedures Reference Manual, publication SR–2138
• Cray C/C++ Reference Manual, publication SR–2179
• Cray C/C++ Ready Reference, publication SQ–2180
• Application Programmer’s Library Reference Manual, publication SR–2165
• UNICOS/mk System Libraries Reference Manual, publication SR–2680
• Message Passing Toolkit: PVM Programmer’s Manual, publication SR–2196
• Message Passing Toolkit: MPI Programmer’s Manual, publication SR–2197
• Application Programmer’s I/O Guide, publication SG–2168
• UNICOS/mk System Calls Reference Manual, publication SR–2612
• Optimizing Code on Cray PVP Systems, publication SG–2192
• CRAY T3E Fortran Optimization Guide, publication SG–2518
SN–2211 1.0 ix
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
Conventions
The following conventions are used throughout this document:
Convention Meaning
command This fixed-space font denotes literal items such as
commands, files, routines, path names, signals,
messages, and programming language elements.
variable Italic typeface denotes variable information, such
as a user-supplied argument, and words or
concepts being define.
The following machine naming conventions may be used throughout this
document:
x SN–2211 1.0
Preface
Term Definition
Cray PVP systems All configurations of Cray parallel vector
processing (PVP) systems, including the
following:
CRAY J90 series
CRAY T90 series
Cray MPP systems All configurations of the CRAY T3E series
All Cray Research All configurations of Cray PVP systems, Cray
systems MPP systems, and Cray Origin systems currently
supported.
SN–2211 1.0 xi
Summary [1]
1.1 Goals
The supercomputing API project has the following primary goal: to define the
set of language and library features that will be provided across
high-performance Cray Research and Silicon Graphics computer systems.
In achieving this goal, the project will also achieve some corollary results:
• Giving current Cray Research customers confidence that their application
investments will be protected as they move to new Cray Research and
Silicon Graphics systems and architectures.
• Providing guidance to application programmers on language and library
features that can be used for portable application development across the
Cray Research and Silicon Graphics product lines.
Note the limited focus of the primary goal of the supercomputing API: to define
the set of portable language and library features. Portable applications
development must take into account additional issues that are not covered in
this document, including:
• Data size differences
• Data format differences
• Makefile and other command differences
These are important topics, but the decision was made to focus this document
on portable language and library features, and to defer discussion and advice
on other portability topics to future publications from Silicon Graphics and
Cray Research.
SN–2211 1.0 1
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
2 SN–2211 1.0
Summary [1]
SN–2211 1.0 3
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
Graphics and Cray Research engineers are investigating these other issues and
plan to make software changes, develop tools, and provide training and
documentation to help application developers deal with them.
For an illustration of how the supercomputing API relates to the previously
separate APIs of Cray Research and Silicon Graphics, see the following graphic:
IRIX API
Cray
extensions:
Other SGI features HPC standards: - FFIO
and standards: - SHMEM
- Fortran 90, C++, C
- Ada95 - MPI, PVM - FFTs
- Java - X/Open XPG4 - Language
- Graphics libraries - BLAS, LAPACK extensions
Obsolete:
High-end SGI - LINPACK
UNICOS API
extensions
Architecture-specific
- Vector math
Supercomputing API
a11346
This graphic shows the major components of the supercomputing API, which is
shown in yellow online and in light gray in the printed version. The largest
part of the supercomputing API consists of standards. The next largest piece
consists of Cray Research extensions. They are language and library features
that have been implemented over the years on Cray Research vector and MPP
systems. The final piece shown consists of high-end Silicon Graphics extensions.
In this document, only a few are listed, reflecting the initial emphasis.
The supercomputing API will be implemented in various stages during 1997
and 1998, on Cray Research UNICOS and UNICOS/mk systems and on Silicon
Graphics IRIX systems. Not all of the features will be available in the early
releases. The full API is planned to be implemented in its entirety on both sets
4 SN–2211 1.0
Summary [1]
of platforms by the end of 1998. As you will see, many of the features of the
supercomputing API are already available on both systems, especially those
defined by formal and de facto standards. The remaining features, though, will
take time to implement and release. This document does not lay out detailed
plans for the implementation of these features.
The following sections are a high-level summary of the supercomputing API.
Subsequent chapters present detailed information about each subject area (see
Section 1.5, page 7), highlighting specific language features and library
functions implemented in the current Cray Research and Silicon Graphics APIs
and identifying those that are carried forward to the supercomputing API.
1.4.1 Fortran
The Fortran language implemented in the supercomputing API primarily
consists of the ANSI and ISO standard language known as Fortran 90. The
Fortran 90 language, in turn, includes the full FORTRAN 77 language as a
subset.
Silicon Graphics Fortran, the supercomputing API Fortran language, includes
many of the extensions to the FORTRAN 77 language and intrinsic functions
that were initially implemented in the Cray Research FORTRAN 77 (CFT77)
compiler and carried forward in the Cray Research CF90 compiler.
The language also includes a set of common directives, primarily for shared
memory multiprocessing, and environment variables used to control and tune
multiprocessing applications.
SN–2211 1.0 5
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
6 SN–2211 1.0
Summary [1]
Both general approaches have strengths and weaknesses, and each is well suited
for particular current system architectures. Future systems from Cray Research
and Silicon Graphics will support both general approaches extremely well.
For the shared memory, directive-based approach, the supercomputing API
includes a proposal for a new set of parallel directives. This set of directives has
been recently developed with the involvement of several other key software
and system vendors. Both Cray Research and Silicon Graphics provide similar
sets of directives in current systems. Because the new directives are expected to
deliver comparable functionality and performance, these other sets of directives
are not included in the supercomputing API. (Although they will be carried
forward on both systems.)
Note: Due to nondisclosure agreements, this document cannot describe the
new parallel directives until the process of defining them is complete. They
will be described in a future update.
For the message-passing approach, the supercomputing API includes MPI, PVM,
and SHMEM. For new applications using message passing, it appears that MPI
is probably the best choice for application developers to consider, since it has
become widely accepted as the de facto standard, and good implementations
are available on a variety of systems. But MPI does not provide all the
capabilities of PVM, nor the capabilities and performance of SHMEM, and thus
PVM and SHMEM remain in the supercomputing API. As MPI and its
implementations evolve, this may change, but at this point, we believe it would
be premature to drop any of these from the supercomputing API.
Interoperability of the different approaches and models is another key goal.
Because the various models have different capabilities and performance profiles,
an application developer may not be able to settle on a single model as best for
all parts of an application. Interoperability of different models makes such a
limiting decision unnecessary.
• System calls and system libraries API (see Chapter 5, page 85).
SN–2211 1.0 7
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
8 SN–2211 1.0
Fortran [2]
This chapter defines the API for the Silicon Graphics Fortran compiler. It is
divided into the following sections:
• The standard Fortran language elements and extensions (see Section 2.1,
page 9).
• Compiler directives (see Section 2.2, page 18).
• Intrinsic routines (see Section 2.3, page 23.)
The term Silicon Graphics Fortran refers to the language that is part of the
supercomputing API. This language differs from the language accepted by the
MIPSpro F77 compiler.
SN–2211 1.0 9
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
2.1.1.1 Source form and the character set in the supercomputing API
The following extensions apply to the form of the source and the character set:
$ and @ in identifiers Silicon Graphics Fortran allows the $ character
and the @ character in identifiers. The @ character
cannot be used as the first character in an
identifier. Using the @ character is not
recommended; MIPSpro reserves it for internal
use.
Compiler directives Silicon Graphics Fortran allows a compiler
directive sentinel beginning with the character C
in column 1 of fixed source form to indicate a
compiler directive. In addition, Silicon Graphics
Fortran allows a compiler sentinel beginning with
the ! character, either in column 1 of a fixed
source form line or as the first nonblank
characters of a free source form line. Compiler
directives appear as comments to other compilers.
Continuation lines Silicon Graphics Fortran allows 99 continuation
lines in fixed or free source form. (The Fortran 90
standard limits continuation lines to 19 in fixed
form and 39 in free source form.)
END Silicon Graphics Fortran allows an END statement
to be continued on subsequent lines.
10 SN–2211 1.0
Fortran [2]
Fixed form line length Silicon Graphics Fortran allows fixed source lines
of 72 characters by default. A command-line
option extends the source line from 72 to 80 or
132 characters. (The Fortran 90 standard restricts
fixed source form lines to 72 characters.)
Characters following column 72, 80, or 132 are
ignored.
Tab character Silicon Graphics Fortran allows the tab character
in both free and fixed forms. In fixed form, if a
tab is the first character on a line, the next
character determines how the line is interpreted.
A nonzero digit indicates a continuation line;
otherwise, the line is the initial line of a
statement.In free form, a tab character is treated
as a single blank character.
SN–2211 1.0 11
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
12 SN–2211 1.0
Fortran [2]
SN–2211 1.0 13
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
14 SN–2211 1.0
Fortran [2]
SN–2211 1.0 15
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
16 SN–2211 1.0
Fortran [2]
2.1.3 Common Cray and MIPSpro Fortran extensions not in the API
This section defines extensions that are currently supported by both the Cray
Fortran and MIPSpro compilers but are not part of the supercomputing API:
LOGICAL constant Cray and MIPSpro Fortran allow .T. and .F. as
abbreviations alternate forms for logical constants .TRUE. and
.FALSE., respectively, but only if neither .T.
nor .F. been defined as a defined-operator.
Additional logical and Cray and MIPSpro Fortran allow .N., .A., .O.,
masking operators and .X. operators as alternative forms for
.NOT., .AND., .OR., and .XOR. when these
forms have not been defined as a defined-operator.
Comma placement Cray and MIPSpro Fortran allow a comma to
precede a right parenthesis in a format descriptor.
Common block The Fortran 90 standard specifies that a variable
variables in a named common block retains its value
(remains defined) only if the common block also
appears in at least one other scoping unit that is
making either a direct or indirect reference to the
current subprogram. The MIPSpro Fortran
compiler retains the value regardless of whether
the common block also appears in any other
SN–2211 1.0 17
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
18 SN–2211 1.0
Fortran [2]
• Cray Fortran directives not included in the supercomputing API (see Section
2.2.2, page 20).
SN–2211 1.0 19
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
20 SN–2211 1.0
Fortran [2]
INLINE and NOINLINE Toggles inlining. (Cray PVP and CRAY T3E
systems only)
INLINE ALWAYS Forces attempted inlining of specified procedures.
(Cray PVP and CRAY T3E systems only)
INLINE NEVER Suppresses attempted inlining of specified
procedures. (Cray PVP systems only)
INTEGER Specifies a default integer size for the program
unit.
MODINLINE and Tells the compiler to write out information about
NOMODINLINE the module procedures so that when the module
is used later, the module procedures can be
inlined. (Cray PVP and CRAY T3E systems only)
NEXTSCALAR Disables vectorization for the next loop. (Cray
PVP and CRAY T3E systems only)
NOINTERCHANGE Inhibits loop interchange on next loop nest.
NOSIDEEFFECTS Specifies that the procedure has no side effects.
(Cray PVP systems only)
PATTERN and Toggles pattern matching on and off.
NOPATTERN
PREFERTASK Indicates that the next loop should be considered
for Autotasking or marks an inner loop to be
tasked instead so that loops are interchanged.
(Cray PVP systems only)
PREFERVECTOR Indicates that the next loop should be considered
for vectorization. (Cray PVP systems only)
RECURRENCE and Toggles vectorization for reduction loops.
NORECURRENCE
SHORTLOOP Identifies the next loop as a short loop. Iterations
are less than or equal to the vector length of 64.
(Cray PVP systems only)
SHORTLOOP128 Identifies the next loop as a short loop. Iterations
are less than or equal to 128. (Cray PVP systems
only)
SPLIT and NOSPLIT Splits or does not split the following loop to take
advantage of the stream buffers on a CRAY T3E
SN–2211 1.0 21
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
22 SN–2211 1.0
Fortran [2]
SN–2211 1.0 23
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
24 SN–2211 1.0
Fortran [2]
SN–2211 1.0 25
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
The intrinsic procedures described in this section support the IEEE Standard for
Binary Floating-point Arithmetic, ANSI/IEEE standard 754/1985. They are not
part of the supercomputing API:
CLEAR_IEEE_EXCEPTION Clears a floating-point
exception indicator.
DISABLE_IEEE_INTERRUPT Disables floating-point
interrupts.
ENABLE_IEEE_INTERRUPT Enables floating-point
interrupts.
GET_IEEE_EXCEPTIONS Retrieves flags that represent
the current floating-point
exception status.
GET_IEEE_INTERRUPTS Retrieves flags that represent
the current floating-point
interrupt status.
26 SN–2211 1.0
Fortran [2]
SN–2211 1.0 27
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
28 SN–2211 1.0
Fortran [2]
2.3.5 Intrinsics common to Cray Fortran and MIPSpro not in the supercomputing API
The following intrinsics are presently supported by both Cray Fortran and
MIPSpro but are not included in the supercomputing API:
• Specific intrinsic procedures for double and complex double data types (see
Section 2.3.5.1, page 29).
• General intrinsic routines common to MIPSpro and Cray Fortran but not in
the supercomputing API (see Section 2.3.5.2, page 30).
• Cray Fortran system module not included in the supercomputing API (see
Section 2.3.5.3, page 31).
• Common system module not included in the supercomputing API (see
Section 2.3.5.4, page 31).
2.3.5.1 Double and complex double intrinsics not included in the supercomputing API
The following specific intrinsic entry points are not included in the
supercomputing API. They are supported on both MIPSpro and Cray Fortran
compilers. Instead of the routine names listed here, use the generic name for
the same routine. For instance, use ABS instead of CDABS.
The data type and data type parameters for arguments to these intrinsics
depend on the architecture. The entry points beginning with CD require two
128-bit real values on Cray PVP architectures and two 64-bit real values on
MIPSpro systems. (If -dlb is specified on the MIPSpro command line, a CD
value is two 128–bit real values.) The D set of entry points requires 128-bit real
arguments on Cray PVP systems and 64-bit real arguments on MIPSpro
systems. (If -d16 is specified on the MIPSpro command line, a D value is a
128–bit real value.)
SN–2211 1.0 29
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
30 SN–2211 1.0
Fortran [2]
2.3.5.3 Cray Fortran system module not included in the supercomputing API
The following Cray Fortran system module is not part of the supercomputing
API:
CRI_IEEE_DEFINITIONS The module containing IEEE Fortran definitions.
This is the alternate and obsolete name for
FTN_IEEE_DEFINITIONS (see the following
section).
SN–2211 1.0 31
C and C++ [3]
This chapter describes the API for C and C++. The following high-level topics
are described in this chapter:
• Extensions to the language standards (see Section 3.1, page 33).
• #pragma directives (see Section 3.2, page 34).
• Built-in functions (see Section 3.3, page 39).
• Predefined macros (see Section 3.4, page 42).
In this chapter, SGI C and C++ refers to the language that is part of the
supercomputing application programming interface (API).
For information on C and C++ environment variables, see Chapter 6, page 109.
Command-line options are not considered part of the API in this document.
SN–2211 1.0 33
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
3.1.2 Cray C and C++ extension not included in the supercomputing API
The following Cray C and C++ extension to the standards is not part of the
supercomputing API:
Hexadecimal Floating constants can be represented in
floating-point constants hexadecimal. This feature is not portable because
identical floating-point constants can have
different meanings on different systems. The next
proposed C standard will include a different way
of specifying this. Available only in C.
• Directives that are common to MIPSpro and Cray Research C/C++ but are
not included in the Supercomputing API (see Section 3.2.3, page 39).
34 SN–2211 1.0
C and C++ [3]
For more information on these directives, see the Cray C/C++ Reference Manual,
publication SR–2179
SN–2211 1.0 35
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
36 SN–2211 1.0
C and C++ [3]
duplicate
Directs the compiler to generate tasked code for the loop that
immediately follows it if that loop contains more than one loop
in the nest that can be tasked. (Cray PVP systems only)
prefervector
SN–2211 1.0 37
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
shortloop
38 SN–2211 1.0
C and C++ [3]
uses_eregs
SN–2211 1.0 39
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
40 SN–2211 1.0
C and C++ [3]
3.3.2 Cray Research built-in functions not included in the supercomputing API
The following Cray Research C and C++ built-in functions are not included in
the supercomputing API. They are organized as follows:
• Built-in functions for all Cray Research systems (see Section 3.3.2.1, page 41)
• Built-in functions for Cray PVP systems (see Section 3.3.2.2, page 41)
• Built-in functions for Cray MPP systems (see Section 3.3.2.3, page 42)
Most of these functions are peculiar to Cray PVP or Cray MPP systems and
have no direct counterparts on future hardware platforms.
SN–2211 1.0 41
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
42 SN–2211 1.0
C and C++ [3]
• Cray Research C and C++ macros that are not included in the
supercomputing API (see Section 3.4.2, page 43)
SN–2211 1.0 43
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
44 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 45
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
46 SN–2211 1.0
Language Libraries [4]
• The PXF routines defined by the IEEE standard interface (see Section 4.2.1.3,
page 50).
• Fortran utility subroutines (see Section 4.2.1.4, page 52).
• Foreign dataset conversion routines (see Section 4.2.1.5, page 52).
4.2.1.2 Flexible file I/O (FFIO) layers included in the supercomputing API
Most of the FFIO functionality is part of the supercomputing API. For
information on the related assign(1) command, see Section 4.1.1, page 45.
The following layers either already are or will be part of the supercomputing
API:
bufa Provides asynchronous buffering.
bmx or tape Implements tape I/O. Each logical record
requested is a physical tape block.
cache Allows efficient random-access I/O, even when
file access is clustered in several regions of a file.
cachea Implements asynchronous cached I/O. When
sequential access patterns are detected while
reading, asynchronous read-ahead is performed,
provided that the number of pages to read ahead
has been specified.
cos Implements COS blocking. This is the default
record blocking used for Fortran unformatted
sequential I/O on UNICOS and UNICOS/mk
systems.
event Monitors I/O occurring between two layers on a
per-file basis. This layer generates statistics in an
ASCII log file.
f77 FORTRAN 77/UNIX Fortran record blocking.
This is the common blocking format used by
most FORTRAN 77 compilers on UNIX systems.
SN–2211 1.0 47
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
extern ssize_t ffreadf (int fd, void *buf, size_t nb, struct
ffsw *stat, int fulp, int *ubc);
The following C functions used with FFIO either already are or will be in the
common set:
ffbksp(3C) and ffbkspf(3C)
48 SN–2211 1.0
Language Libraries [4]
Opens a file.
ffpos(3C)
Writes to a file.
ffwritea(3C)
SN–2211 1.0 49
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
50 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 51
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
52 SN–2211 1.0
Language Libraries [4]
4.2.2 Cray Fortran applications library extensions that are not in the supercomputing API
The following applications library routines are Cray Fortran extensions to the
Fortran 90 standard. They are not in the supercomputing API. They are
organized as follows:
• Data conversion routines (see Section 4.2.2.1, page 53).
• Tasking routines (see Section 4.2.2.2, page 56).
• I/O routines and packages (see Section 4.2.2.3, page 57).
• Math routines (see Section 4.2.2.4, page 58).
• Resource management routines (see Section 4.2.2.5, page 58).
• Program analysis (see Section 4.2.2.6, page 59).
• NAMELIST character manipulation routines (see Section 4.2.2.7, page 60).
• General routines (see Section 4.2.2.8, page 60).
SN–2211 1.0 53
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
54 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 55
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
56 SN–2211 1.0
Language Libraries [4]
4.2.2.3 I/O routines and packages not included in the supercomputing API
The following I/O routines and I/O packages are not part of the
supercomputing API:
AQIO
SN–2211 1.0 57
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
MSIO
58 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 59
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
4.2.2.7 NAMELIST character manipulation routines not included in the supercomputing API
The Cray Fortran NAMELIST character manipulation routines, beginning with
RNL and WNL, are not part of the supercomputing API. See the respective man
pages for more information.
60 SN–2211 1.0
Language Libraries [4]
GETHOST(3F)
Moves characters.
NUMARG(3I)
Checks to see whether two files have the same inode number.
SETPLIMQ(3F)
SN–2211 1.0 61
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
Manages tables.
UNAME(3F)
4.2.3 Common MIPSpro and Cray Fortran extensions not in the supercomputing API
The following routines are common to MIPSpro and Cray Fortran but are not
part of the supercomputing API:
EVASGN(3F) Identifies an integer variable to be used as an
event.
EVCLEAR(3F) Clears an event and returns control to the calling
task.
EVPOST(3F) Posts an event and returns control to the calling
task.
EVREL(3F) Releases the identifier assigned to an event.
EVTEST(3F) Returns the state of an event.
EVWAIT(3F) Delays the calling task until the specified event is
posted.
LOCKASGN(3F) Identifies an integer variable intended for use as a
lock.
LOCKOFF(3F) Clears a lock and returns control to the calling
task.
LOCKON(3F) Sets a lock and returns control to the calling task.
LOCKREL(3F) Releases the identifier assigned to a lock.
LOCKTEST(3F) Tests a lock to determine its state (locked or
unlocked).
NLOCKOFF(3F) Clears a nested lock and returns control to the
calling task.
62 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 63
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
64 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 65
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
66 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 67
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
68 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 69
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
70 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 71
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
72 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 73
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
74 SN–2211 1.0
Language Libraries [4]
SHMEM_COMPLEX_IPUT(3), SHMEM_INTEGER_IPUT(3),
SHMEM_LOGICAL_IPUT(3), and SHMEM_REAL_IPUT(3)
SN–2211 1.0 75
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
SHMEM_COMPLEX_IGET(3), SHMEM_INTEGER_IGET(3),
SHMEM_LOGICAL_IGET(3), and SHMEM_REAL_IGET(3)
76 SN–2211 1.0
Language Libraries [4]
shmem_barrier_all(3)
SN–2211 1.0 77
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
78 SN–2211 1.0
Language Libraries [4]
SHMEM_INT8_MIN_TO_ALL(3), SHMEM_INT4_MIN_TO_ALL(3),
SHMEM_REAL16_MIN_TO_ALL(3), SHMEM_REAL8_MIN_TO_ALL(3), and
SHMEM_REAL4_MIN_TO_ALL(3)
SN–2211 1.0 79
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
shmem_double_max_to_all(3), shmem_longdouble_max_to_all(3),
shmem_float_max_to_all(3), shmem_int_max_to_all(3), and
shmem_short_max_to_all(3)
80 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 81
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
82 SN–2211 1.0
Language Libraries [4]
SN–2211 1.0 83
System and Library Calls [5]
The base of the supercomputing API is the system calls, library calls, and
include files specified in the X/Open XPG4 standard (documented in the
X/Open CAE Specification, System Interfaces and Headers, Issue 4).
In addition, the supercomputing API supports the following interfaces specified
in the X/Open Single Unix Specification (documented in the X/Open CAE
Specification, System Interfaces and Headers, Issue 4, Version 2):
a64l getpwent select
bcmp gettimeofday setgrent
bcopy getwd setlogmask
brk index setpgrp
bzero insque setpwent
closelog killpg setregid
ecvt l64a setreuid
endgrent lchown sighold
endpwent lockf sigignore
fchmod lstat sigpause
fchown mknod sigrelse
fcvt mktemp
sigset
ffs nftw
srandom
fstatvfs openlog
statvfs
ftok random strdup
ftruncate readlink
strncasecmp
gcvt realpath
symlink
getdtablesize remque
sync
getgrent rindex
syslog
gethostid sbrk
truncate
getpgid
SN–2211 1.0 85
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
ttyslot
utimes
86 SN–2211 1.0
System and Library Calls [5]
The supercomputing API also supports the following interfaces specified by the
POSIX 1003.1-1996 standard:
asctime_r pthread_cond_init
ctime_r pthread_cond_signal
flockfile pthread_cond_timedwait
ftrylockfile pthread_cond_wait
funlockfile pthread_condattr_destroy
getc_unlocked pthread_condattr_init
getchar_unlocked pthread_create
getgrgid_r pthread_detach
getgrnam_r pthread_exit
getlogin_r pthread_getspecific
getpwnam_r pthread_join
getpwuid_r pthread_key_create
gmtime_r pthread_key_delete
localtime_r pthread_mutex_destroy
pthread_atfork pthread_mutex_init
pthread_attr_destroy pthread_mutex_lock
pthread_attr_getdetachstate pthread_mutex_trylock
pthread_attr_getstackaddr pthread_mutex_unlock
pthread_attr_getstacksize pthread_mutexattr_destroy
pthread_attr_init pthread_mutexattr_init
pthread_attr_setdetachstate pthread_once
pthread_attr_setstackaddr pthread_self
pthread_attr_setstacksize pthread_setspecific
pthread_cond_broadcast pthread_sigmask
pthread_cond_destroy putc_unlocked
SN–2211 1.0 87
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
putchar_unlocked strtok_r
rand_r ttyname_r
readdir_r
sigwait
This chapter describes the UNICOS/mk 1.4.1 and UNICOS 9.2 calls that are not
part of the IRIX system. These calls are divided into three groups:
• Calls that will be ported to the IRIX system and are part of the
supercomputing API.
• Calls that will be ported to the IRIX system, but are not part of the
supercomputing API. These calls are not recommended for use in new
applications (since other calls in the supercomputing API have similar
functionality), but are available to help in porting older applications to the
IRIX system. Their use may be deprecated in a later version of the IRIX
system.
• Calls that will not be ported to the IRIX system and should not be used for
portable applications.
The chapter is divided into the following sections:
• Accounting, resource limits, and scheduling (see Section 5.1, page 89)
• File system and I/O (see Section 5.2, page 91)
• Checkpoint and restart feature (see Section 5.2.1, page 92)
• Hardware interfaces (see Section 5.4, page 93)
• Data migration (see Section 5.5, page 94)
• Multilevel security (see Section 5.6, page 95)
• Math functions (see Section 5.7, page 97)
• Multithreaded process support (see Section 5.8, page 98)
• Networking routines (see Section 5.9, page 100)
• Miscellaneous calls (see Section 5.10, page 101)
• Individual system call differences (see Section 5.11, page 105)
88 SN–2211 1.0
System and Library Calls [5]
5.1.1 UNICOS/mk and UNICOS calls that are being ported to the IRIX system and are not included in
the supercomputing API
The following UNICOS and UNICOS/mk calls for accounting, resource limits,
and scheduling will be ported, but they are not in the supercomputing API:
acctctl(2)
SN–2211 1.0 89
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
90 SN–2211 1.0
System and Library Calls [5]
wracct(2)
5.1.2 UNICOS/mk and UNICOS calls that are not being ported to the IRIX system and are not included
in the supercomputing API
The following UNICOS and UNICOS/mk calls for accounting, resource limits,
and scheduling are not in the supercomputing API:
dacct(2) Enables or disables process and daemon
accounting.
devacct(2) (UNICOS systems only) Controls device
accounting.
limits(2) Returns or sets limits structure for fair-share
scheduler. This system call is used by various
daemons to set user limits for programs.
policy(2) Returns or sets information on the CPU allocation
policy. This system call is used by login
processing.
schedv(2) (UNICOS systems only) Sets memory scheduling
parameters. This system call is called by the
nschedv(1) command, which allows
administrators to change many variables
associated with process scheduling.
SN–2211 1.0 91
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
5.2.1 UNICOS/mk and UNICOS calls not included in the supercomputing API
The following file system and I/O calls are not in the supercomputing API:
chacid(2)
Allocates storage for a file. This system call is used by the I/O
libraries to preallocate contiguous space for files whose size is
known.
join(2), fjoin(2)
92 SN–2211 1.0
System and Library Calls [5]
unlink2(2)
5.4.1 UNICOS/mk and UNICOS calls not included in the supercomputing API
There are several hardware-specific calls in the UNICOS/mk and UNICOS
systems. The chmem(2) system call can be used to alter the amount of memory
available on the system (for example, so enough memory can be reserved for
diagnostics). The cpselect(2) system call can select a particular CPU to run a
process or job on, and is useful for similar reasons. The ssbreak(2),
SN–2211 1.0 93
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
ssread(2), sswrite(2) system calls (and the sds* routines that call them) are
used to control the use of solid-state storage devices (SSD).
The following hardware-specific calls are not in the supercomputing API:
chmem(2)
5.5.1 UNICOS/mk and UNICOS calls not included in the supercomputing API
The Data Migration Facility (DMF) includes the following system and library
calls. These are used by the dmmode(1) command, the shells, and the data
migration daemon.
94 SN–2211 1.0
System and Library Calls [5]
The following data migration calls are not in the supercomputing API:
dmf_offline(3C), dmf_hashandle(3C), dmf_vendor(3C)
5.6.1 UNICOS/mk and UNICOS calls not included in the supercomputing API
The following UNICOS/mk and UNICOS calls are not in the supercomputing
API:
audctl(2)
SN–2211 1.0 95
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
96 SN–2211 1.0
System and Library Calls [5]
SN–2211 1.0 97
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
5.7.2 UNICOS/mk and UNICOS calls not included in the supercomputing API
The following UNICOS/mk and UNICOS math calls are not in the
supercomputing API:
feclearexcept(3C), fegetexceptflag(3C), feraiseexcept(3C),
fesetexceptflag(3C), fetestexcept(3C)
98 SN–2211 1.0
System and Library Calls [5]
Reschedules a thread.
_tfork(2)
SN–2211 1.0 99
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
5.9.1 UNICOS/mk and UNICOS calls not included in the supercomputing API
The following UNICOS/mk and UNICOS networking calls are not in the
supercomputing API:
authdes_create(3C)
setportbm(2), getportbm(2)
5.10.1 UNICOS/mk and UNICOS calls that are being ported to the IRIX system and are included in the
supercomputing API
The following UNICOS/mk and UNICOS calls are in the supercomputing API:
catmsgfmt(3C) Formats an error message.
5.10.2 UNICOS/mk and UNICOS calls that are being ported to the IRIX system and are not included in
the supercomputing API
The following UNICOS/mk and UNICOS calls are not in the supercomputing
API:
catgetmsg(3C) Reads a message from a message catalog.
5.10.3 UNICOS/mk and UNICOS calls not included in the supercomputing API
The following UNICOS/mk and UNICOS calls are not in the supercomputing
API:
airlog(3C)
bsdsigpause(2)
getmount(2)
ptyrecon(2)
suspend(2), resume(2)
O_BIG
This chapter describes the environment variables for Fortran, C, and C++. The
chapter is organized as follows;
• Fortran environment variables (see Section 6.1, page 109).
• C and C++ environment variables (see Section 6.2, page 111).
6.1.2.2 Miscellaneous
The following miscellaneous environment variables are not included in the
supercomputing API:
AUXBUF Specifies the number of buffers, for auxiliary
arrays, that are held in memory.
AUXPAGE Specifies the size of each AUX buffer.
6.2.1 Cray Research C and C++ environment variables not included in the supercomputing API
The Cray Research C and C++ environment variables that are not part of the
supercomputing API are as follows:
CRI_cc_OPTIONS, Specifies command-line options that are applied
CRI_c89_OPTIONS, to all compilations using the respective compiler.
CRI_cpp_OPTIONS, Options specified by these environment variables
and CRI_CC_OPTIONS are added following the options specified directly
on the command line. This is especially useful for
adding options to compilations done with build
tools.
LANG Identifies your requirements for native language,
local customs, and coded character set with
regard to compiler messages.
MSG_FORMAT Controls the format in which you receive
compiler messages. (The Cray message system is
$, 10 amax0, 64
@, 10 amax1, 64
_ _unix, 43 amin0, 64
amin1, 64
amod, 64
A AND, 24
AND, bitwise
a64l, 85 on reals and integers, 14
ABORT, 52 APUTWA, 58
abs, 63 AQCLOSE, 57
access, 105 AQIO, 57
Account IDs, 89 AQOPEN, 57
Account records, 89 AQREAD, 57
Accounting AQREADC, 57
( See System and library calls ), 89 AQSTAT, 57
acctctl, 89 AQWRITE, 57
acctid, 89 _argcount, 41
acid2nam, 89 Arithmetic, pointer
acidnamfree, 89 differences, 12
acos, 63 Array
_ADDR32, 44 format identifier, 15
_ADDR64, 44 partial initialization, 18
addudb, 89 Array reference, 13
aimag, 63 Arrays
aint, 63 assumed-size as internal file, 14
aio_cancel, 91 ASCDC, 54
aio_error, 91 asctime_r, 87
aio_fsync, 91 asgcmd, 46
aio_hold, 91 asin, 63
aio_read, 91 assign, 45, 49, 52
aio_return, 91 Assignments, 14
aio_suspend, 91 Assignments, Fortran
aio_write, 91 ( See Language extensions ), 13
airlog, 101 Assumed-size array
alarm, 99 Fortran, 14
ALIGN, 20 Asterisk
align, 36 edit descriptor, 18
alog, 63 ASYNCDR, 57
alog10, 63 Asynchronous I/O
ALOG_V, 65
SN–2211 1.0 115
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
chdiri, 92 N$PES, 28
CHECKDR, 57 Constants
CHECKMS, 58 complex literal, 12
Checkpoint feature, 93 Hollerith, 12
chkpnt, 93 typeless, 11
chmem, 94 Continuation lines
cimag, 98 Fortran, 10
CLEAR_IEEE_EXCEPTION, 26 Control Data conversion procedures
CLEARBT, 60 ( See Routines ), 54
CLEARFI, 60 Conversion
CLOC, 12, 28 ( See Routines ), 54
CLOCK, 30 Convolution, 68
clog, 63, 98 COPY_ASSUMED_SHAPE, 20
CLOSDR, 57 cos, 47, 64
closelog, 85 COS_V, 65
CLOSMS, 58 cosh, 64
cmplx, 64 COSS, 65
cmptext, 95 COSS_V, 65
_cmr, 41 COT, 25
CNCALL, 19, 23 cpow, 98
Comma placement, 17 cpselect, 94
Commands _cptofcd, 102
included in API cpused, 102
assign, 45 CRAY, 43
explain, 46 cray, 43
not included in API Cray convolution, 68
asgcmd, 46 Cray direct sparse, 68
fdcp, 46 Cray distributed FFT, 68
COMMON, 20 Cray FFT, 69
common, 36 Cray Fortran extensions
Common block, 12 ( See also Routines ), 53
multiple declarations, 13 ( See Routines ), 62
variable, 17 Cray Fortran routines
Common Cray and MIPSpro Fortran extensions ( See also Routines ), 60
not in supercomputing API, 17 ( See Routines ), 63
Compiler directives, 10 Cray linear recurrence, 69
COMPL, 24 Cray pointers, 12
complex (C only), 34 Cray sorting and searching, 69
Complex literal constant, 12 CRAY1, 43
CONCURRENT, 20 _CRAY1, 43
conj, 98 CRAY2CDC, 54
conjg, 64 CRAY2CRI, 55
Constant CRAY2ETA, 54
not included in API
118 SN–2211 1.0
Index
CRAY2IBD, 54 dasin, 63
CRAY2IBM, 54 DATA, 18
CRAY2IEG, 55 Data declarations
CRAY2NVE, 54 type, 12
CRAY2VAX, 56 using asterisk for type precision, 12
_CRAY, 43 Data migration facility (DMF)
_CRAYC, 44 ( See System and library calls ), 94
CRAYDUMP, 59 Data objects, 13
_CRAYIEEE, 43 Data objects, Fortran
_CRAYMPP, 43 ( See Language extensions ), 11
_CRAYT3E, 43 DATA statement, 13
creal, 98 Data types
CRI2CRAY, 55 DOUBLE COMPLEX statement, 18
CRI2CRY, 56 datan, 63
CRI2IBM, 52 datan2, 64
CRI2IEG, 52 DATE, 30
CRI2IEG_77, 55 DATE_AND_TIME, 30
CRI2IEU, 52 dble, 64
CRI_c89_OPTIONS, 111 DCMPLX, 30
CRI_CC_OPTIONS, 111 DCONJG, 30
CRI_cc_OPTIONS, 111 dcos, 64
CRI_cpp_OPTIONS, 111 dcosh, 64
CRI_F90_OPTIONS, 111 DCOT, 30
CRI_IEEE_DEFINITIONS, 31 ddim, 64
CRYCRI, 56 Declarations
csin, 64, 98 Fortran
CSMG, 25 included in API, 11
csqrt, 64, 98 DECODE, 18
ctime_r, 87 deleteudb, 89
cutimes, 102 devacct, 91
CVMGM, 25 Device accounting, 89
CVMGN, 25 dexp, 64
CVMGT, 25 DFLOAT, 30
CVMGZ, 25 dim, 64
CVMPG, 25 DIMAG, 30
dint, 63
Direct sparse, 68
D Directives
( See also Functions ), 65
D edit descriptor, 15 common in API, 19
dabs, 63 Fortran, 18
dacct, 91 Fortran sentinels, 10
dacos, 63 included in API
daemon, 102
SN–2211 1.0 119
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
CNCALL, 19 NOPATTERN, 21
EJECT, 19 NORECURRENCE, 21
FIXED, 19 NOSPLIT, 21
FREE, 19 NOUNROLL, 22
ID, 19 NOVECTOR, 22
IVDEP, 19 NOVSEARCH, 22
LIST, 19 NUMCPUS, 23
NAME, 19 PARALLEL, 23
NOLIST, 19 PATTERN, 21
PERMUTATION, 20 PERMUTATION, 23
not included in API PREFERTASK, 21
ALIGN, 20 PREFERVECTOR, 21
BL, 20 RECURRENCE, 21
BOUNDS, 20 SHORTLOOP, 21
CACHE_ALIGN, 20 SHORTLOOP128, 21
CACHE_BYPASS, 20 SPLIT, 21
CASE, 20, 22 STACK, 22
CNCALL, 23 SUPPRESS, 22
COMMON, 20 SYMMETRIC, 22
CONCURRENT, 20 TASK, 22
COPY_ASSUMED_SHAPE, 20 UNROLL, 22
DO ALL, 23 USES_EREGS, 22
DO PARALLEL, 23 VECTOR, 22
END CASE, 22 VFUNCTION, 22
END DO, 23 VSEARCH, 22
END GUARD, 23 #pragma
END PARALLEL, 23 ( See #pragma directives ), 34
END_CASE, 20 DISABLE_IEEE_INTERRUPT, 26
FLOW, 20 Distributed FFT, 67
GUARD, 23 dlog, 63
INLINE, 21 dlog10, 63
INLINE ALWAYS, 21 dmax1, 64
INLINE NEVER, 21 DMF
INTEGER, 21 ( See System and library calls ), 94
MAXCPUS, 23 dmf_hashandle, 95
MODINLINE, 21 dmf_offline, 95
NEXTSCALAR, 21 dmf_vendor, 95
NO INTERCHANGE, 21 dmin1, 64
NO SIDE EFFECTS, 21 dmmode, 95
NOBL, 20 dmod, 64
NOBOUNDS, 20 dmofrq, 95
NOFLOW, 20 DO ALL, 23
NOINLINE, 21 DO loop
NOMODINLINE, 21
120 SN–2211 1.0
Index
ftruncate, 85 gcvt, 85
ftrylockfile, 87 get routines
Function ( See also Routines ), 73, 82
%VAL, 113 strided
function reference ( See also Routines ), 75
in I/O list, 15 GET_IEEE_EXCEPTIONS, 26
Functions, 65 GET_IEEE_INTERRUPTS, 26
( See also Built-in functions ), 39 GET_IEEE_ROUNDING_MODE, 27
included in API GET_IEEE_STATUS, 27
ffbksp, 48 GETARG, 60
ffbkspf, 48 getc_unlocked, 87
ffclose, 49 GETCALLERINFO, 59
ffclosef, 49 getchar_unlocked, 87
fffcntl, 49 getconfval, 102
ffopen, 49 getconfvals, 102
ffopenf, 49 GETCPUS, 60
ffopens, 49 GETCWD, 60
ffpos, 49 getdevn, 92
ffread, 49 getdtablesize, 85
ffreada, 49 getfacl, 96
ffreadf, 49 getfsent, 102
ffseek, 49 getfsfile, 102
ffseekf, 49 getfsspec, 102
ffsetsp, 49 getfstype, 102
ffweod, 49 getgrent, 85
ffweodf, 49 getgrgid_r, 87
ffweof, 49 getgrnam_r, 87
ffweoff, 49 GETHOST, 61
ffwrite, 49 gethost, 100
ffwritea, 49 gethostid, 85
ffwritef, 49 gethostlookup, 100
not included in API getinfo, 102
CBRT, 65 getinfomsg, 102
COSS, 65 getjtab, 90
SNGLR, 66 getlim, 90
funlockfile, 87 getlogin_r, 87
_getlwpid, 99
_getlwppid, 99
G getmntent, 102
getmntinfo, 102
GAMMA, 58 getmount, 103
GATHER, 70 GETNAMEQ, 59
_gbit, 40 GETOARGC, 60
_gbits, 40
124 SN–2211 1.0
Index
getoptlst, 103 H
getpal, 96
getpermit, 90 Hardware interface calls
getpgid, 85 ( See System and library calls ), 93
getpid, 99 HCOS_V, 65
GETPMC, 61 HCOSS_V, 65
getportbm, 101 Hexadecimal constants, 11
GETPOS, 28 Hexadecimal floating-point constants (C only), 34
getppriv, 96 HEXP_V, 65
getpwent, 85 HLOG_V, 65
getpwnam_r, 87 Hollerith constants, 12
getpwuid_r, 87 HPALLOC, 58
getsectab, 96 HPCHECK, 58
getsysudb, 89 HPCLMOVE, 58
getsysv, 96 HPDEALLC, 58
gettimeofday, 85 HPDUMP, 58
gettosbyname, 100 HPNEWLEN, 58
gettosent, 100 HPSHRINK, 58
gettrustedudb, 89 HSIN_V, 65
getudb, 89 HSQRT_V, 65
getudbchain, 89 HSQRTINV_V, 65
getudbdefault, 89 HTOR_VV, 65
getudbnam, 89
getudbstat, 89
getudbtmap, 89 I
getudbuid, 89
getusershell, 103 I/O
getusrv, 96 asynchronous, 91
GETVARG, 60 Fortran extensions, 14
GETVARGC, 60 list, 91
_getvm, 41 I/O routines
GETWA, 58 ( See Routines ), 57
getwd, 85 I/O unit, 17
gid2nam, 89 ia_failure, 96
gidnamfree, 89 ia_mlsuser, 96
global, 48 ia_success, 96
gmtime_r, 87 ia_user, 96
GTSTDPTR, 61 iabs, 63
GUARD, 23 ialloc, 92
guard, 39 IARGC, 60
guestctl, 103 IBD2CRAY, 54
ibm, 48
IBM conversion procedures
toggles, 21 OR, 25
Input POPCNT, 25
list-directed, 15 POPPAR, 25
insque, 85 SHIFTA, 25
instantiate, 35 SHIFTL, 25
int, 64 SHIFTR, 25
INT6064, 54 UNIT, 26
INT6460, 54 XOR, 25
INT_MULT_UPPER, 25 not included in API
_int_mult_upper, 40 CDABS, 30
INTEGER, 21 CDCOS, 30
Integer data CDEXP, 30
logical operations on, 14 CDLOG, 30
Interlanguage communication, 19, 113 CDSIN, 30
Intrinsic functions CDSQRT, 30
( See Intrinsic procedures ), 23 CLEAR_IEEE_EXCEPTION, 26
Intrinsic procedures CLOC, 28
architecture dependencies, 29 CLOCK, 30
common to Fortran and MIPSpro DATE, 30
not included in API, 29 DCMPLX, 30
complex double, 29 DCONJG, 30
Cray Fortran extensions, 25 DCOT, 30
double, 29 DFLOAT, 30
included in API DIMAG, 30
AND, 24 DISABLE_IEEE_INTERRUPT, 26
COMPL, 24 DREAL, 30
COT, 25 ENABLE_IEEE_INTERRUPT, 26
CSMG, 25 FCD, 28
CVMGM, 25 GET_IEEE_EXCEPTIONS, 26
CVMGN, 25 GET_IEEE_INTERRUPTS, 26
CVMGP, 25 GET_IEEE_ROUNDING_MODE, 27
CVMGT, 25 GET_IEEE_STATUS, 27
CVMGZ, 25 GETPOS, 28
DSHIFTL, 24 IEEE_BINARY_SCALE, 27
DSHIFTR, 24 IEEE_CLASS, 27
EQV, 24 IEEE_COPY_SIGN, 27
INT_MULT_UPPER, 25 IEEE_EXPONENT, 27
IRTC, 25 IEEE_FINITE, 27
LEADZ, 25 IEEE_INT, 27
LENGTH, 25 IEEE_IS_NAN, 27
LOC, 25 IEEE_NEXT_AFTER, 27
MASK, 24 IEEE_REAL, 27
NEQV, 24 IEEE_REMAINDER, 27
NOT, 25
SN–2211 1.0 127
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
IEEE_UNORDERED, 27 J
JDATE, 30
M@CLR, 28 j0, 64
M@LD, 28 j1, 64
M@LDMX, 28 jacct, 90
M@MX, 28 JDATE, 30
M@UL, 28 jn, 64
MEMORY_BARRIER, 29 Job, 89
MY_PE, 28 join, 92
NUMARG, 29 Julian date, 30
RANF, 30
RANGET, 30
RANSET, 31 K
REMOTE_WRITE_BARRIER, 29
RTC, 29 Keywords
SET_IEEE_EXCEPTION, 27 ELEMENTAL, 16
SET_IEEE_EXCEPTIONS, 27 PURE, 16
SET_IEEE_INTERRUPTS, 27 kill, 99
SET_IEEE_ROUNDING_MODE, 28 killm, 89, 103
SET_IEEE_STATUS, 28 killpg, 85
SETPOS, 28 KIND declaration, 12
TEST_IEEE_EXCEPTION, 28 KIND type specifiers, 18
TEST_IEEE_INTERRUPT, 28
WRITE_MEMORY_BARRIER, 29
to support IEEE arithmetic, 26 L
Intrinsic routines
( See Intrinsic procedures ), 23 l64a, 85
IPXFARGC, 60 LANG, 111
IRTC, 25, 29 Language elements
ISELFADD, 57 Fortran, 9
ISELFMUL, 57 Language extensions
ISELFSCH, 57 C
ISERIAL, 59 variable length arrays, 34
ISHELL, 52 C/C++, 33
isign, 64 not included in API, 34
ISO Fortran standard, 9 restricted pointers, 34
ISUP, 57 Fortran, 17
ISUPC, 57 included in API, 33
IVDEP, 19 $, 10
ivdep, 35 @, 10
array reference, 13
assignments, 14
assumed-size array, 14
MOVBIT, 52 nint, 64
MOVBITZ, 52 NLIMIT, 58
MP_DEDICATED, 110 nlimit, 90
MP_HOLDTIME, 110 NLOCKOFF, 62
MP_SAMPLE, 110 NLOCKON, 63
MP_SLVSIN, 110 NLOCKTEST, 63
MP_SLVSSZ, 110 NLSPATH, 110, 112
MPI library, 70 NO INTERCHANGE, 21
mr, 48 NO SIDE EFFECTS, 21
MSG_FORMAT, 110, 111 NOBL, 20
MSIO, 58 NOBOUNDS, 20
mtimes, 99 nobounds, 36
_mul, 41 NOFLOW, 20
Multilevel security NOINLINE, 21
( See System and library calls ), 95 noinline, 35
Multithreaded process support, 98 NOLIST, 19
MVC, 61 NOMODINLINE, 21
MXM, 70 noopt, 37
MXMA, 70 NOPATTERN, 21
MXV, 70 NORECURRENCE, 21
MXVA, 70 noreduction, 37
MY_PE, 28, 71 NOSPLIT, 21
_my_pe, 40, 72 NOT, 25
NOT, bitwise
on reals and integers, 14
N NOUNROLL, 22
NOVECTOR, 22
N$PES, 28 novector, 37
nam2acid, 89 NOVSEARCH, 22
nam2gid, 89 novsearch, 37
nam2uid, 89 NPROC, 111, 112
NAME, 19 nschedv, 91
NAMELIST, 18 nsecctl, 100
character manipulation routines, 60 null, 48
NC1FS file system, 91 NUM_PES, 72
NEQV, 24 _num_pes, 40, 72
Networking routines NUMARG, 29, 61
( See System and library calls ), 100 _numargs, 41
newexit, 99 Number of PE, 28
newgetpid, 99 Number of PEs in job, 28
newgetppid, 99 NUMBLKS, 52
NEXTSCALAR, 21 NUMCPUS, 23
nftw, 85 NVE2CRAY, 54
nicem, 89, 103
132 SN–2211 1.0
Index
O Pipelining
defining threshold, 20
Octal constants, 11 Point-to-point synchronization routines
open, 106, 105 ( See also Routines ), 83
OPENDR, 57 ( See Routines ), 76
openi, 92 Pointer arithmetic
openlog, 85 differences, 12
OPENMS, 58 policy, 91
Operators POPCNT, 25
logical, 17 _popcnt, 40
masking, 17 POPCNT_V, 65
opt, 37 POPPAR, 25
OR, 25 _poppar, 40
OR, bitwise POSIX 1003.1-1996 standard, 87
on reals and integers, 14 pow, 98
#pragma directives, 34
included in API, 35
P can_instantiate, 35
do_not_instantiate, 35
P32, 54 ident, 35
P6460, 54 inline, 35
PACK, 61 instantiate, 35
Packages ivdep, 35
( See Routines ), 68 noinline, 35
PARALLEL, 23 unroll, 36
parallel, 39 not included in API, 36
Parallel applications align, 36
( See Environment variables ), 110 bounds, 36
Parallel Virtual Machine library cache_align, 36
( See PVM library ), 70 cache_bypass, 36
Parentheses case, 39
format descriptor, 15 common, 36
in expressions, 18 duplicate, 37
parsetos, 100 endcase, 39
pathname, 103 endguard, 39
PATTERN, 21 endloop, 39
Pattern matching endparallel, 39
toggles on/off, 21 guard, 39
PAUSE statement, 16 message, 37
_pbit, 40 nobounds, 36
_pbits, 40 noopt, 37
PE query routines noreduction, 37
( See Routines ), 71 novector, 37
PERMUTATION, 20, 23
SN–2211 1.0 133
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
mod, 64 shmem_double_iput, 75
MOVBIT, 52 shmem_double_max_to_all, 80
MOVBITZ, 52 shmem_double_min_to_all, 80
MY_PE, 71 shmem_double_p, 73
_my_pe, 72 shmem_double_prod_to_all, 80
nint, 64 shmem_double_put, 73
NUM_PES, 72 shmem_double_sum_to_all, 80
_num_pes, 72 shmem_double_swap, 78
NUMBLKS, 52 shmem_fcollect32, 82
PXF routines, 50 SHMEM_FCOLLECT4, 81
real, 64 shmem_fcollect64, 82
SECOND, 52 SHMEM_FCOLLECT8, 81
SECONDR, 52 shmem_fence, 76
sgnl, 64 shmem_float_g, 74
shmem_barrier_all, 77 shmem_float_get, 74
shmem_broadcast32, 81 shmem_float_iget, 76
SHMEM_BROADCAST4, 81 shmem_float_iput, 75
shmem_broadcast64, 81 shmem_float_max_to_all, 80
SHMEM_BROADCAST8, 81 shmem_float_min_to_all, 80
SHMEM_CLEAR_CACHE_INV, 81 shmem_float_p, 73
shmem_clear_cache_inv, 81 shmem_float_prod_to_all, 80
SHMEM_CLEAR_LOCK, 78 shmem_float_put, 73
shmem_clear_lock, 78 shmem_float_sum_to_all, 80
shmem_collect32, 82 shmem_float_swap, 78
SHMEM_COLLECT4, 81 shmem_get128, 73
shmem_collect64, 82 shmem_get32, 73
SHMEM_COLLECT8, 81 SHMEM_GET4, 74
SHMEM_COMP4_PROD_TO_ALL, 79 shmem_get64, 73
SHMEM_COMP4_SUM_TO_ALL, 79 SHMEM_GET8, 74
SHMEM_COMP4_XOR_TO_ALL, 79 shmem_getmem, 73
SHMEM_COMP8_PROD_TO_ALL, 79 shmem_iget128, 75
SHMEM_COMP8_SUM_TO_ALL, 79 shmem_iget32, 75
SHMEM_COMP8_XOR_TO_ALL, 79 SHMEM_IGET4, 76
SHMEM_COMPLEX_GET, 74 shmem_iget64, 75
SHMEM_COMPLEX_IGET, 76 SHMEM_INT4_ADD, 79
SHMEM_COMPLEX_IPUT, 75 SHMEM_INT4_AND_TO_ALL, 78
SHMEM_COMPLEX_PUT, 73 SHMEM_INT4_CSWAP, 77
shmem_complexd_prod_to_all, 80 SHMEM_INT4_FADD, 77
shmem_complexd_sum_to_all, 80 SHMEM_INT4_FINC, 77
shmem_complexf_prod_to_all, 80 SHMEM_INT4_INC, 77
shmem_complexf_sum_to_all, 80 SHMEM_INT4_MAX_TO_ALL, 78
shmem_double_g, 74 SHMEM_INT4_MIN_TO_ALL, 79
shmem_double_get, 74 SHMEM_INT4_MSWAP, 77
shmem_double_iget, 76
SN–2211 1.0 137
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
SHMEM_INT4_OR_TO_ALL, 79 shmem_long_cswap, 78
SHMEM_INT4_PROD_TO_ALL, 79 shmem_long_g, 74
SHMEM_INT4_SUM_TO_ALL, 79 shmem_long_get, 74
SHMEM_INT4_SWAP, 77 shmem_long_iget, 76
SHMEM_INT4_XOR_TO_ALL, 79 shmem_long_iput, 75
SHMEM_INT8_AND_TO_ALL, 78 shmem_long_mswap, 78
SHMEM_INT8_CSWAP, 77 shmem_long_p, 73
SHMEM_INT8_MAX_TO_ALL, 78 shmem_long_put, 73
SHMEM_INT8_MIN_TO_ALL, 79 shmem_long_swap, 78
SHMEM_INT8_MSWAP, 77 shmem_longdouble_get, 74
SHMEM_INT8_OR_TO_ALL, 79 shmem_longdouble_iget, 75
SHMEM_INT8_PROD_TO_ALL, 79 shmem_longdouble_iput, 75
SHMEM_INT8_SUM_TO_ALL, 79 shmem_longdouble_max_to_all, 80
SHMEM_INT8_SWAP, 77 shmem_longdouble_min_to_all, 80
SHMEM_INT8_XOR_TO_ALL, 79 shmem_longdouble_prod_to_all, 80
shmem_int_and_to_all, 79 shmem_longdouble_put, 73
shmem_int_cswap, 78 shmem_longdouble_sum_to_all, 80
shmem_int_g, 74 shmem_longlong_get, 74
shmem_int_get, 74 shmem_longlong_iget, 75
shmem_int_iget, 76 SHMEM_MY_PE, 72
shmem_int_iput, 75 shmem_my_pe, 72
shmem_int_max_to_all, 80 SHMEM_N_PES, 72
shmem_int_min_to_all, 80 shmem_n_pes, 72
shmem_int_mswap, 78 shmem_put128, 72
shmem_int_or_to_all, 80 shmem_put32, 72
shmem_int_p, 73 SHMEM_PUT4, 73
shmem_int_prod_to_all, 80 shmem_put64, 72
SHMEM_INT_PUT, 73 SHMEM_PUT8, 73
shmem_int_put, 73 shmem_putmem, 72
shmem_int_sum_to_all, 80 shmem_quiet, 76
shmem_int_swap, 78 SHMEM_REAL16_MIN_TO_ALL, 79
shmem_int_xor_to_all, 80 SHMEM_REAL16_PROD_TO_ALL, 79
SHMEM_INTEGER_GET, 74 SHMEM_REAL16_SUM_TO_ALL, 79
SHMEM_INTEGER_IGET, 76 SHMEM_REAL4_MAX_TO_ALL, 78
SHMEM_INTEGER_IPUT, 75 SHMEM_REAL4_MIN_TO_ALL, 79
shmem_iput128, 74 SHMEM_REAL4_PROD_TO_ALL, 79
shmem_iput32, 74 SHMEM_REAL4_SUM_TO_ALL, 79
SHMEM_IPUT4, 75 SHMEM_REAL4_SWAP, 77
shmem_iput64, 74 SHMEM_REAL4_XOR_TO_ALL, 79
SHMEM_IPUT8, 75 SHMEM_REAL8_MAX_TO_ALL, 78
SHMEM_LOGICAL_GET, 74 SHMEM_REAL8_MIN_TO_ALL, 79
SHMEM_LOGICAL_IGET, 76 SHMEM_REAL8_PROD_TO_ALL, 79
SHMEM_LOGICAL_IPUT, 75 SHMEM_REAL8_SUM_TO_ALL, 79
SHMEM_LOGICAL_PUT, 73
138 SN–2211 1.0
Index
SHMEM_REAL8_SWAP, 77 tan, 65
SHMEM_REAL8_XOR_TO_ALL, 79 tanh, 65
SHMEM_REAL_GET, 74 TIMEF, 52
SHMEM_REAL_IGET, 76 USCCTC, 53
SHMEM_REAL_IPUT, 75 USCCTI, 53
SHMEM_REAL_PUT, 73 y0, 65
SHMEM_SET_CACHE_INV, 81 y1, 65
shmem_set_cache_inv, 81 yn, 65
SHMEM_SET_CACHE_LINE_INV, 81 not included in API
shmem_set_cache_line_inv, 81 ALOG_V, 65
SHMEM_SET_LOCK, 78 APUTWA, 58
shmem_set_lock, 78 AQCLOSE, 57
shmem_short_add, 79 AQIO, 57
shmem_short_and_to_all, 79 AQOPEN, 57
shmem_short_cswap, 78 AQREAD, 57
shmem_short_fadd, 79 AQREADC, 57
shmem_short_finc, 78 AQSTAT, 57
shmem_short_g, 74 AQWRITE, 57
shmem_short_get, 74 ASCDC, 54
shmem_short_iget, 76 ASYNCDR, 57
shmem_short_inc, 78 ASYNCMS, 58
shmem_short_max_to_all, 80 B2OCT, 54
shmem_short_min_to_all, 80 BARASGN, 56
shmem_short_mswap, 78 BARREL, 56
shmem_short_or_to_all, 80 BARSYNC, 56
shmem_short_p, 73 BITVEC, 60
shmem_short_prod_to_all, 80 BITVECM, 60
shmem_short_put, 73 BUFDUMP, 56
shmem_short_sum_to_all, 80 BUFPRINT, 56
shmem_short_swap, 78 BUFTUNE, 56
shmem_short_xor_to_all, 80 BUFUSER, 56
shmem_swap, 77 CDC2CRAY, 54
SHMEM_TEST_LOCK, 78 CHCONV, 54
shmem_test_lock, 78 CHECKDR, 57
shmem_udcflush, 81 CHECKMS, 58
shmem_udcflush_line, 81 CLEARBT, 60
shmem_wait, 76 CLEARFI, 60
shmem_wait_until, 76 CLOSDR, 57
sign, 64 CLOSMS, 58
sin, 64 COS_V, 65
sinh, 64 COSS_V, 65
sqrt, 64 Cray convolution, 68
start_pes, 76 Cray direct sparse, 68
STRMOV, 52
SN–2211 1.0 139
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
LINPACK, 69 SAXPY, 70
LOCKASGN, 62 SCATTER, 70
LOCKOFF, 62 SDOT, 70
LOCKON, 62 SDSALLOC, 59
LOCKREL, 62 SDSFREE, 59
LOCKTEST, 62 SDSINFO, 59
MINV, 70 SDSREALC, 59
MSIO, 58 SEEK, 58
MVC, 61 SENSEBT, 60
MXM, 70 SENSEFI, 60
MXMA, 70 SETBT, 60
MXV, 70 SETFI, 60
MXVA, 70 SETPLIMQ, 61
NLIMIT, 58 SHMEM_BROADCAST, 82
NLOCKOFF, 62 shmem_broadcast, 82
NLOCKON, 63 SHMEM_CLEAR_EVENT, 83
NLOCKTEST, 63 shmem_clear_event, 83
NUMARG, 61 SHMEM_COLLECT, 83
NVE2CRAY, 54 shmem_collect, 83
OPENDR, 57 SHMEM_FCOLLECT, 83
OPENMS, 58 shmem_fcollect, 83
P32, 54 SHMEM_GET, 82
P6460, 54 shmem_get, 82
PACK, 61 SHMEM_PUT, 82
POPCNT_V, 65 shmem_put, 82
PUTBYT, 61 SHMEM_SET_EVENT, 83
PUTWA, 58 shmem_set_event, 83
PXFGETARG, 60 SHMEM_STACK, 83
PXFGETCWD, 60 shmem_stack, 83
RANF_V, 65 SHMEM_TEST_EVENT, 83
RBN, 54 shmem_test_event, 83
READ, 58 SHMEM_WAIT_EVENT, 83
READC, 58 shmem_wait_event, 83
READCP, 58 SHPALLOC, 59
READDR, 57 SHPCLMOVE, 59
READMS, 58 SHPDEALLC, 59
READP, 58 SHUTDSAV, 61
REMARK, 61 SIGOFF, 61
REMARK2, 61 SIGON, 61
REMARKF, 61 SIN_V, 65
RNB, 54 SITRSOL, 70
RNL routines, 60 Sparse BLAS 1, 70
RTOR_VV, 65 SQRT_V, 65
SAMEFILE, 61
SN–2211 1.0 141
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
SQRTINV_V, 65 USSCTC, 55
STACKSZ, 59 USSCTI, 55
STINDR, 57 VAX2CRAY, 56
STINDX, 58 VBLAS, 70
STKSTAT, 59 VLAPACK, 70
Superseded routines, 70 VXBCTC, 56
SXMPY, 70 VXBCTI, 56
SYMDEBUG, 59 VXDCTC, 56
SYMDUMP, 59 VXDCTI, 56
SYNCDR, 57 VXGCTC, 56
SYNCMS, 58 VXGCTI, 56
TMADW, 62 VXICTC, 56
TMAMU, 62 VXICTI, 56
TMATS, 62 VXLCTC, 56
TMINIT, 62 VXLCTI, 56
TMMSC, 62 VXSCTC, 56
TMMVE, 62 VXSCTI, 56
TMPTC, 62 VXZCTC, 56, 57
TMPTS, 62 VXZCTI, 56
TMSRC, 62 WAIO, 58
TMVSC, 62 WAITDR, 57
TRACEBK, 59 WAITMS, 58
TRBK, 59 WCLOSE, 58
TRBKLVL, 59 WNL routines, 60
TREMAIN, 59 WOPEN, 58
TSECND, 59, 63 WRITDR, 57
TSKLIST, 57 WRITE, 58
TSKSTART, 63 WRITEC, 58
TSKTEST, 57 WRITECP, 58
TSKTUNE, 57 WRITEP, 58
TSKVALUE, 63 WRITMS, 58
TSKWAIT, 63 XCRITADD, 57
U32, 54 XCRITMUL, 57
U6064, 54 XPFMT, 60
UNAME, 62 XSELFADD, 57
UNPACK, 62 XSELFMUL, 57
USDCTC, 55 rpc, 100
USDCTI, 55 RTC, 29
USICTC, 55 _rtc, 41
USICTI, 55 rtclock, 104
USICTP, 55 RTOR_VV, 65
USLCTC, 55
USLCTI, 55
USPCTC, 55
142 SN–2211 1.0
Index
S secnames, 97
secnums, 97
SAMEFILE, 61 SECOND, 52
SAVE statement, 13 SECONDR, 52
SAXPY, 70 secstat, 97
sbreak, 104 Security, 95
sbrk, 85 secwords, 97
ScaLAPACK, 67 SEEK, 58
Scalar argument select, 85
passed by value, 16 _semclr, 42
Scalar optimization _semget, 42
suppressed, 22 _semput, 42
SCATTER, 70 _semset, 42
Scheduling _semts, 42
( See System and library calls ), 89 SENSEBT, 60
schedv, 91 SENSEFI, 60
Scientific libraries SET_IEEE_EXCEPTION, 27
Silicon Graphics/Cray scientific library SET_IEEE_EXCEPTIONS, 27
( See SCSL ), 66 SET_IEEE_INTERRUPTS, 27
Scientific library, 6 SET_IEEE_ROUNDING_MODE, 28
SCSL, 66 SET_IEEE_STATUS, 28
future releases SETBT, 60
Convolution, 68 setdevs, 97
direct sparse, 68 setenv, 104
Distributed FFT, 67 setfacl, 96
linear recurrence, 68 setfcmp, 97
ScaLAPACK, 67 setfflg, 97
Sorting and searching, 68 SETFI, 60
SCSL components setflvl, 97
included in API setfsent, 102
FFT, 67 setgrent, 85
LAPACK, 67 setjob, 90
Nonstandard BLAS, 67 setlim, 90
Standard BLAS, 66 setloghost, 104
SDOT, 70 setlogmask, 85
SDSALLOC, 59 setlogname, 104
sdsalloc, 94 setlogport, 104
SDSFREE, 59 setpal, 96
sdsfree, 94 setpermit, 90
SDSINFO, 59 setpgrp, 85
sdsinfo, 94 SETPLIMQ, 61
SDSREALC, 59 setportbm, 101
sdsrealloc, 94 SETPOS, 28
secbits, 97
SN–2211 1.0 143
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
setppriv, 96 SHMEM_COLLECT, 83
setpwent, 85 shmem_collect, 83
setregid, 85 shmem_collect32, 82
setreuid, 85 SHMEM_COLLECT4, 81
setsysv, 96 shmem_collect64, 82
settosent, 100 SHMEM_COLLECT8, 81
setucat, 97 SHMEM_COMP4_PROD_TO_ALL, 79
setucmp, 97 SHMEM_COMP4_SUM_TO_ALL, 79
setudb, 89 SHMEM_COMP4_XOR_TO_ALL, 79
setudbdefault, 89 SHMEM_COMP8_PROD_TO_ALL, 79
setudbpath, 89 SHMEM_COMP8_SUM_TO_ALL, 79
setudbtmap, 89 SHMEM_COMP8_XOR_TO_ALL, 79
setulvl, 97 SHMEM_COMPLEX_GET, 74
setusershell, 103 SHMEM_COMPLEX_IGET, 76
setusrv, 96 SHMEM_COMPLEX_IPUT, 75
_setvm, 41 SHMEM_COMPLEX_PUT, 73
sgnl, 64 shmem_complexd_prod_to_all, 80
sh, 112 shmem_complexd_sum_to_all, 80
Shared memory library shmem_complexf_prod_to_all, 80
( See Routines ), 71 shmem_complexf_sum_to_all, 80
shfree, 104 shmem_double_g, 74
shfree_nb, 104 shmem_double_get, 74
SHIFTA, 25 shmem_double_iget, 76
SHIFTL, 25 shmem_double_iput, 75
SHIFTR, 25 shmem_double_max_to_all, 80
shmalloc, 104 shmem_double_min_to_all, 80
shmalloc_check, 104 shmem_double_p, 73
shmalloc_nb, 104 shmem_double_prod_to_all, 80
shmalloc_stats, 104 shmem_double_put, 73
SHMEM routines shmem_double_sum_to_all, 80
( See Routines ), 71 shmem_double_swap, 78
shmem_barrier_all, 77 SHMEM_FCOLLECT, 83
SHMEM_BROADCAST, 82 shmem_fcollect, 83
shmem_broadcast, 82 shmem_fcollect32, 82
shmem_broadcast32, 81 SHMEM_FCOLLECT4, 81
SHMEM_BROADCAST4, 81 shmem_fcollect64, 82
shmem_broadcast64, 81 SHMEM_FCOLLECT8, 81
SHMEM_BROADCAST8, 81 shmem_fence, 76
SHMEM_CLEAR_CACHE_INV, 81 shmem_float_g, 74
shmem_clear_cache_inv, 81 shmem_float_get, 74
SHMEM_CLEAR_EVENT, 83 shmem_float_iget, 76
shmem_clear_event, 83 shmem_float_iput, 75
SHMEM_CLEAR_LOCK, 78 shmem_float_max_to_all, 80
shmem_clear_lock, 78
144 SN–2211 1.0
Index
shmem_float_min_to_all, 80 shmem_int_g, 74
shmem_float_p, 73 shmem_int_get, 74
shmem_float_prod_to_all, 80 shmem_int_iget, 76
shmem_float_put, 73 shmem_int_iput, 75
shmem_float_sum_to_all, 80 shmem_int_max_to_all, 80
shmem_float_swap, 78 shmem_int_min_to_all, 80
SHMEM_GET, 82 shmem_int_mswap, 78
shmem_get, 82 shmem_int_or_to_all, 80
shmem_get128, 73 shmem_int_p, 73
shmem_get32, 73 shmem_int_prod_to_all, 80
SHMEM_GET4, 74 SHMEM_INT_PUT, 73
shmem_get64, 73 shmem_int_put, 73
SHMEM_GET8, 74 shmem_int_sum_to_all, 80
shmem_getmem, 73 shmem_int_swap, 78
shmem_iget128, 75 shmem_int_xor_to_all, 80
shmem_iget32, 75 SHMEM_INTEGER_GET, 74
shmem_iget64, 75 SHMEM_INTEGER_IGET, 76
SHMEM_IGET8, 76 SHMEM_INTEGER_IPUT, 75
SHMEM_INT4_ADD, 79 shmem_iput128, 74
SHMEM_INT4_AND_TO_ALL, 78 shmem_iput32, 74
SHMEM_INT4_CSWAP, 77 SHMEM_IPUT4, 75
SHMEM_INT4_FADD, 77 shmem_iput64, 74
SHMEM_INT4_FINC, 77 SHMEM_IPUT8, 75
SHMEM_INT4_INC, 77 SHMEM_LOGICAL_GET, 74
SHMEM_INT4_MAX_TO_ALL, 78 SHMEM_LOGICAL_IGET, 76
SHMEM_INT4_MIN_TO_ALL, 79 SHMEM_LOGICAL_IPUT, 75
SHMEM_INT4_MSWAP, 77 SHMEM_LOGICAL_PUT, 73
SHMEM_INT4_OR_TO_ALL, 79 shmem_long_cswap, 78
SHMEM_INT4_PROD_TO_ALL, 79 shmem_long_g, 74
SHMEM_INT4_SUM_TO_ALL, 79 shmem_long_get, 74
SHMEM_INT4_SWAP, 77 shmem_long_iget, 76
SHMEM_INT4_XOR_TO_ALL, 79 shmem_long_iput, 75
SHMEM_INT8_AND_TO_ALL, 78 shmem_long_mswap, 78
SHMEM_INT8_CSWAP, 77 shmem_long_p, 73
SHMEM_INT8_MAX_TO_ALL, 78 shmem_long_put, 73
SHMEM_INT8_MIN_TO_ALL, 79 shmem_long_swap, 78
SHMEM_INT8_MSWAP, 77 shmem_longdouble_get, 74
SHMEM_INT8_OR_TO_ALL, 79 shmem_longdouble_iget, 75
SHMEM_INT8_PROD_TO_ALL, 79 shmem_longdouble_iput, 75
SHMEM_INT8_SUM_TO_ALL, 79 shmem_longdouble_max_to_all, 80
SHMEM_INT8_SWAP, 77 shmem_longdouble_min_to_all, 80
SHMEM_INT8_XOR_TO_ALL, 79 shmem_longdouble_prod_to_all, 80
shmem_int_and_to_all, 79 shmem_longdouble_put, 73
shmem_int_cswap, 78
SN–2211 1.0 145
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
shmem_longdouble_sum_to_all, 80 shmem_short_and_to_all, 79
shmem_longlong_get, 74 shmem_short_cswap, 78
shmem_longlong_iget, 75 shmem_short_fadd, 79
SHMEM_MY_PE, 72 shmem_short_finc, 78
shmem_my_pe, 72 shmem_short_g, 74
SHMEM_N_PES, 72 shmem_short_get, 74
shmem_n_pes, 72 shmem_short_iget, 76
SHMEM_PUT, 82 shmem_short_inc, 78
shmem_put, 82 shmem_short_max_to_all, 80
shmem_put128, 72 shmem_short_min_to_all, 80
shmem_put32, 72 shmem_short_mswap, 78
SHMEM_PUT4, 73 shmem_short_or_to_all, 80
shmem_put64, 72 shmem_short_p, 73
SHMEM_PUT8, 73 shmem_short_prod_to_all, 80
shmem_putmem, 72 shmem_short_put, 73
shmem_quiet, 76 shmem_short_sum_to_all, 80
SHMEM_REAL16_MIN_TO_ALL, 79 shmem_short_swap, 78
SHMEM_REAL16_PROD_TO_ALL, 79 shmem_short_xor_to_all, 80
SHMEM_REAL16_SUM_TO_ALL, 79 SHMEM_STACK, 83
SHMEM_REAL4_MAX_TO_ALL, 78 shmem_stack, 83
SHMEM_REAL4_MIN_TO_ALL, 79 shmem_swap, 77
SHMEM_REAL4_PROD_TO_ALL, 79 SHMEM_TEST_EVENT, 83
SHMEM_REAL4_SUM_TO_ALL, 79 shmem_test_event, 83
SHMEM_REAL4_SWAP, 77 SHMEM_TEST_LOCK, 78
SHMEM_REAL4_XOR_TO_ALL, 79 shmem_test_lock, 78
SHMEM_REAL8_MAX_TO_ALL, 78 shmem_udcflush, 81
SHMEM_REAL8_MIN_TO_ALL, 79 shmem_udcflush_line, 81
SHMEM_REAL8_PROD_TO_ALL, 79 shmem_wait, 76
SHMEM_REAL8_SUM_TO_ALL, 79 SHMEM_WAIT_EVENT, 83
SHMEM_REAL8_SWAP, 77 shmem_wait_event, 83
SHMEM_REAL8_XOR_TO_ALL, 79 shmem_wait_until, 76
SHMEM_REAL_GET, 74 SHORTLOOP, 21
SHMEM_REAL_IGET, 76 shortloop, 38
SHMEM_REAL_IPUT, 75 SHORTLOOP128, 21
SHMEM_REAL_PUT, 73 shortloop128, 38
SHMEM_SET_CACHE_INV, 81 SHPALLOC, 59
shmem_set_cache_inv, 81 SHPCLMOVE, 59
SHMEM_SET_CACHE_LINE_INV, 81 SHPDEALLC, 59
shmem_set_cache_line_inv, 81 shrealloc, 104
SHMEM_SET_EVENT, 83 shrealloc_nb, 104
shmem_set_event, 83 SHUTDSAV, 61
SHMEM_SET_LOCK, 78 shutdsav, 93
shmem_set_lock, 78 sigctl, 104
shmem_short_add, 79
146 SN–2211 1.0
Index
sighold, 85 Standards
sigignore, 85 Fortran 90, 9
sign, 64 ISO, Fortran, 9
Sign-extended shift, 25 X/Open Single Unix Specification, 85
SIGOFF, 61 X/Open XPG4 , 85
sigoff, 104 start_pes, 76
SIGON, 61 stat, 108, 105
sigon, 104 statvfs, 85
sigpause, 85 STINDR, 57
sigrelse, 85 STINDX, 58
sigset, 85 STKSTAT, 59
sigwait, 87 STOP statement, 16
Silicon Graphics Fortran Stop-code type, 16
definition, 9 Storage
sin, 64, 98 of string in object file, 19
SIN_V, 65 Storage association
sinh, 64 Fortran, 12
site, 48 strdup, 85
SITRSOL, 70 string, 104
Slash (/) edit descriptor, 18 STRMOV, 52
slgentry, 97 strncasecmp, 85
slgtrust, 97 strnrstrn, 104
slgtrustobj, 97 strnstrn, 104
SNGLR, 66 strrstr, 104
snprintf, 104 strtod, 104
socket, 108 strtof, 104
soft, 38 strtok_r, 87
Solid-state storage devices (SSD), 94 strtold, 104
Sorting and searching, 69 Summary, 5
Sorting and searching routines, 68 Superseded routines, 70
Source form SUPPRESS, 22
( See Language extensions ), 10 suppress, 38
SPLIT, 21 suspend, 105
split, 38 SXMPY, 70
sqrt, 64, 98 SYMDEBUG, 59
SQRT_V, 65 SYMDUMP, 59
SQRTINV_V, 65 symlink, 85
srandom, 85 SYMMETRIC, 22
ssbreak, 94 symmetric, 38
ssread, 94 sync, 85
sswrite, 94 SYNCDR, 57
STACK, 22 SYNCMS, 58
STACKSIZE, 111 syscall, 48
STACKSZ, 59
SN–2211 1.0 147
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
mls_dominate, 96 recalla, 92
mls_equal, 96 recalls, 92
mls_export, 96 resch, 99
mls_extract, 96 restart, 93
mls_free, 96 resume, 105
mls_glb, 96 rewriteudb, 89
mls_import, 96 rmfacl, 96
mls_lub, 96 rtclock, 104
modfl, 98 sbreak, 104
mtimes, 99 schedv, 91
nam2acid, 89 sdsalloc, 94
nam2gid, 89 sdsfree, 94
nam2uid, 89 sdsinfo, 94
newexit, 99 sdsrealloc, 94
newgetpid, 99 secbits, 97
newgetppid, 99 secnames, 97
nicem, 103 secnums, 97
nlimit, 90 secstat, 97
nsecctl, 100 secwords, 97
openi, 92 setdevs, 97
parsetos, 100 setenv, 104
pathname, 103 setfacl, 96
policy, 91 setfcmp, 97
priv_clear_file, 96 setfflg, 97
priv_clear_proc, 96 setflvl, 97
priv_dup_file, 96 setfsent, 102
priv_free_file, 96 setjob, 90
priv_free_proc, 96 setlim, 90
priv_get_fd, 96 setloghost, 104
priv_get_file, 96 setlogname, 104
priv_get_file_flag, 96 setlogport, 104
priv_get_proc, 96 setpal, 96
priv_get_proc_flag, 96 setpermit, 90
priv_init_file, 96 setportbm, 101
priv_init_proc, 96 setppriv, 96
priv_set_fd, 96 setsysv, 96
priv_set_file, 96 settosent, 100
priv_set_file_flag, 96 setucat, 97
priv_set_proc, 96 setucmp, 97
priv_set_proc_flag, 96 setudb, 89
ptyrecon, 104 setudbdefault, 89
rcmdexec, 100 setudbpath, 89
reada, 92 setudbtmap, 89
recall, 92
150 SN–2211 1.0
Index
setulvl, 97 udbisopen, 89
setusershell, 103 uid2nam, 89
setusrv, 96 unlink2, 93
shfree, 104 unlockudb, 89
shfree_nb, 104 unsetenv, 104
shmalloc_check, 104 upanic, 105
shmalloc_nb, 104 vsnprintf, 104
shmalloc_stats, 104 waitjob, 90
shrealloc, 104 wracct, 91
shrealloc_nb, 104 writea, 93
shutdsav, 93 zeroudbstat, 89
sigctl, 104 System calls
sigoff, 104 ( See System and library calls ), 85
sigon, 104 System module
slgentry, 97 included in API
slgtrust, 97 PXF_DEFINITIONS, 26
slgtrustobj, 97 not included in API
snprintf, 104 CRI_IEEE_DEFINITIONS, 31
ssbreak, 94 FTN_IEEE_DEFINITIONS, 31
ssread, 94
sswrite, 94
strnrstrn, 104 T
strnstrn, 104
strrstr, 104 t_exit, 99
strtof, 104 t_fork, 99
strtold, 104 t_gettid, 99
suspend, 105 t_id, 99
t_exit, 99 t_lock, 100
t_fork, 99 t_nlock, 100
t_gettid, 99 t_ntestlock, 100
t_id, 99 t_nunlock, 100
t_lock, 100 t_testlock, 100
t_nlock, 100 t_tid, 99
t_ntestlock, 100 t_unlock, 100
t_nunlock, 100 Tab character, 11
t_testlock, 100 tabinfo, 105
t_tid, 99 tabread, 105
t_unlock, 100 tan, 65
tabinfo, 105 tanh, 65
tabread, 105 tape, 47
target, 94 TARGET, 111, 112
tfork, 100 target, 94, 112
_tfork, 99 TASK, 22
thread, 100
SN–2211 1.0 151
Silicon Graphics/Cray Research Supercomputing Application Programming Interface (API)
TASKCOMMON, 17 U
taskcommon, 36
Tasking U32, 54
toggles on/off, 22 U6064, 54
Tasking routines udbisopen, 89
( See Routines ), 56 uid2nam, 89
taskloop, 39 UNAME, 62
taskprivate, 38 UNICOS calls
taskshared, 38 ( See System and library calls ), 88
TEST_IEEE_EXCEPTION, 28 UNICOS/mk calls
TEST_IEEE_INTERRUPT, 28 ( See System and library calls ), 88
text, 48 _UNICOS, 43
tfork, 100 UNIT, 26
_tfork, 99 Unit identifier, 17
thread, 100 Units
tid, 99 Fortran extensions, 14
TIMEF, 52 unix, 43
tlock, 100 unlink2, 93
TMADW, 62 unlockudb, 89
TMAMU, 62 UNPACK, 62
TMATS, 62 UNROLL, 22
TMINIT, 62 unroll, 36
TMMSC, 62 unsetenv, 104
TMMVE, 62 upanic, 105
TMPDIR, 111 USCCTC, 53
TMPTC, 62 USCCTI, 53
TMPTS, 62 USDCTC, 55
TMSRC, 62 USDCTI, 55
TMVSC, 62 user, 48
TRACEBK, 59 USES_EREGS, 22
TRBK, 59 uses_eregs, 39
TRBKLVL, 59 USICTC, 55
TREMAIN, 59 USICTI, 55
truncate, 85 USICTP, 55
TSECND, 59, 63 USLCTC, 55
TSKLIST, 57 USLCTI, 55
TSKSTART, 63 USSCTC, 55
TSKTEST, 57 USSCTI, 55
TSKTUNE, 57 utimes, 85
TSKVALUE, 63
TSKWAIT, 63
ttyname_r, 87
ttyslot, 85
Typeless constants, 11
152 SN–2211 1.0
Index
V W
yn, 65 Z
zeroudbstat, 89