The NETWORK Procedure

PROC NETWORK Statement

  • PROC NETWORK < options >;

The PROC NETWORK statement invokes the NETWORK procedure. You can specify the following options to define the input and output data tables, the log levels, and various other processing controls:

DETERMINISTIC=TRUE | FALSE

specifies whether to enforce determinism. By default, DETERMINISTIC=TRUE, which ensures that each invocation (with the same machine configuration and parameter settings) produces the same final result. For more information about determinism, see the section Determinism.

DIRECTION=DIRECTED | UNDIRECTED

specifies whether the input graph should be considered directed or undirected. You can specify the following values:

DIRECTED

considers the input graph to be directed. In a directed graph, each link left-parenthesis i comma j right-parenthesis has a direction that defines how something (such as information) can flow over that link. In link left-parenthesis i comma j right-parenthesis, the flow is from node i to node j (i right-arrow j). Node i is called the source (tail) node, and node j is called the sink (head) node.

UNDIRECTED

considers the input graph to be undirected. In an undirected graph, each link StartSet i comma j EndSet has no direction and the flow can be in either direction. That is, StartSet i comma j EndSet equals StartSet j comma i EndSet.

By default, DIRECTION=UNDIRECTED. For more information, see the section Graph Input and Output Data.

DISTRIBUTED=TRUE | FALSE

specifies whether to use a distributed graph. By default, DISTRIBUTED=FALSE, which means that a distributed graph is not used. For more information about the algorithms that support distributed graph computation, see the section Execution Modes and Data Movement.

GRAPH=number

specifies the in-memory graph to use. This option can be used with any algorithm that supports in-memory execution.

For more information about using the GRAPH= option, see the section Persistent Data Structures (In-Memory Graphs).

INDEXOFFSET=number

specifies the index offset for identifiers in the log and results output data tables. For example, if three cycles are found in cycle enumeration, they are labeled cycles 1, 2, and 3 by default. If INDEXOFFSET=4, they are labeled cycles 4, 5, and 6. The value of number must be an integer greater than or equal to 0. By default, INDEXOFFSET=1.

LINKS=CAS-libref.data-table

specifies the input data table that contains the graph link information. CAS-libref.data-table is a two-level name, where CAS-libref refers to the caslib and session identifier, and data-table specifies the name of the input data table. For more information about this two-level name, see the section Using CAS Sessions and CAS Engine Librefs in Chapter 1, Introduction.

For more information about this input table, see the section Links Input Data.

LINKSQUERY=CAS-libref.data-table

specifies the input data table that contains the graph link information for the query graph. CAS-libref.data-table is a two-level name, where CAS-libref refers to the caslib and session identifier, and data-table specifies the name of the input data table. For more information about this two-level name, see the section Using CAS Sessions and CAS Engine Librefs in Chapter 1, Introduction.

This option is supported only when used in conjunction with the PATTERNMATCH statement. For more information about this input table, see the section Pattern Matching.

LOGFREQTIME=number
LOGFREQUENCYTIME=number

controls the frequency (in number of seconds) for displaying iteration logs for some algorithms, where number can be any integer greater than or equal to 1. This option is useful for computationally intensive algorithms. Setting number too low can hurt algorithm performance. This option is ignored for a single-server setup. By default, LOGFREQTIME=5.

LOGLEVEL=NONE | BASIC | MODERATE | AGGRESSIVE

controls the amount of information that is displayed in the SAS log. You can specify the following values:

NONE

turns off all procedure-related messages in the SAS log.

BASIC

displays a brief summary of the algorithmic processing.

MODERATE

displays a moderately detailed summary of the input, output, and algorithmic processing.

AGGRESSIVE

displays a more detailed summary of the input, output, and algorithmic processing.

By default, LOGLEVEL=BASIC.

MULTILINKS=TRUE | FALSE

specifies whether to include or aggregate multilinks when an input graph (specified by the LINKS= or LINKSQUERY= option) is read. You can specify the following values:

FALSE

aggregates multilinks.

TRUE

includes multilinks.

By default, MULTILINKS=TRUE for algorithms that support multilinks.

For more information about this option, see the section Multigraphs.

NODES=CAS-libref.data-table

specifies the input data table that contains the graph node information. CAS-libref.data-table is a two-level name, where CAS-libref refers to the caslib and session identifier, and data-table specifies the name of the input data table. For more information about this two-level name, see the section Using CAS Sessions and CAS Engine Librefs in Chapter 1, Introduction.

For more information about this input table, see the section Nodes Input Data.

NODESQUERY=CAS-libref.data-table

specifies the input data table that contains the graph node information for the query graph. CAS-libref.data-table is a two-level name, where CAS-libref refers to the caslib and session identifier, and data-table specifies the name of the input data table. For more information about this two-level name, see the section Using CAS Sessions and CAS Engine Librefs in Chapter 1, Introduction.

This option is supported only when used in conjunction with the PATTERNMATCH statement. For more information about this input table, see the section Pattern Matching.

NODESSUBSET=CAS-libref.data-table

specifies the input data table that contains the graph node subset information. CAS-libref.data-table is a two-level name, where CAS-libref refers to the caslib and session identifier, and data-table specifies the name of the input data table. For more information about this two-level name, see the section Using CAS Sessions and CAS Engine Librefs in Chapter 1, Introduction.

For more information about this input table, see the section Nodes Subset Input Data.

NTHREADS=number

specifies the maximum number of threads to use for multithreaded processing. Some of the algorithms can take advantage of multicore machines and can run faster when number is greater than 1 (see Table 6 for a list). Algorithms that cannot take advantage of this option use only one thread even if number is greater than 1. For distributed execution, number specifies the maximum number of threads to use on each machine. The value of number can be any integer between 1 and 1024, inclusive. The default is the number of cores on the machine that executes the process or the number of cores permissible based on your installation (whichever is less). The number of simultaneously active CPUs is limited by your installation and license configuration.

OUTGRAPHLIST=CAS-libref.data-table

specifies the output data table to contain summary information about in-memory graphs. CAS-libref.data-table is a two-level name, where CAS-libref refers to the caslib and session identifier, and data-table specifies the name of the output data table. For more information about this two-level name, see the section Using CAS Sessions and CAS Engine Librefs in Chapter 1, Introduction.

OUTLINKS=CAS-libref.data-table

specifies the output data table to contain the graph link information along with any results from the algorithms that calculate metrics on links. CAS-libref.data-table is a two-level name, where CAS-libref refers to the caslib and session identifier, and data-table specifies the name of the output data table. For more information about this two-level name, see the section Using CAS Sessions and CAS Engine Librefs in Chapter 1, Introduction.

For examples of the content of this output data table, see the various algorithm sections.

OUTNODES=CAS-libref.data-table

specifies the output data table to contain the graph node information along with any results from the algorithms that calculate metrics on nodes. CAS-libref.data-table is a two-level name, where CAS-libref refers to the caslib and session identifier, and data-table specifies the name of the output data table. For more information about this two-level name, see the section Using CAS Sessions and CAS Engine Librefs in Chapter 1, Introduction.

For examples of the content of this output data table, see the various algorithm sections.

SELFLINKS=TRUE | FALSE

specifies whether to include or remove self-links when an input graph (specified by the LINKS= or LINKSQUERY= option) is read. You can specify the following values:

FALSE

removes self-links.

TRUE

includes self-links.

By default, SELFLINKS=TRUE for algorithms that support self-links.

For more information about this option, see the section Self-Links.

STANDARDIZEDLABELS

specifies that the input graph data are in a standardized format, as described in the section Standardized Labels Input.

STANDARDIZEDLABELSOUT

specifies that the output graph data include standardized format, as described in the section Standardized Labels Output.

TIMETYPE=CPU | REAL

specifies whether CPU time or real time is used for each algorithm’s MAXTIME= option (where applicable). You can specify the following values:

CPU

specifies units of CPU time. The time restriction is applied per processing machine (not across all machines).

REAL

specifies units of real time.

By default, TIMETYPE=REAL.

Last updated: November 22, 2022