Exemplar C and Fortran 77 Programmer's Guide

System utilities

[ Previous Page ] [ Next Page ] [ Contents ]


Last modified on: Wednesday, January 22 1997 at 10:24am

This chapter describes various utilities that allow you to make more effective use of your Exemplar servers. Before discussing any of these utilities, however, we need to discuss subcomplexes because some of the utilities (such as mpa, scm, and sysinfo) work with subcomplexes.


Subcomplexes

On Exemplar servers, processes run on subcomplexes, which are collections of processors and global memory. Subcomplexes are highly configurable, and configuration is done by the system administrator using the Subcomplex Manager. For more information on the Subcomplex Manager, refer to the scm(1) man page or the SPP-UX System Administrator's Guide.

Subcomplexes allow the system administrator to tailor processors and memory to specific application needs, making the most efficient use of system resources. For example, a nonparallel or nontime-critical application can be allocated a single processor; an application containing a lot of fine-grain parallelism can be allocated many processors; and an application requiring large amounts of memory can be allocated processors on several hypernodes. (A hypernode is a set of processors and physical memory organized as a symmetric multiprocessor, or SMP, running a single image of the operating system microkernel.)

Physical configuration

Subcomplexes can consist of from one processor to the total number installed on the server. Hypernodes can be split among as many subcomplexes as there are processors in the hypernode, and subcomplexes can be subsets or supersets of hypernodes. Processors can belong to only one subcomplex at a time, and--in order to be used--every processor must belong to a subcomplex.

Figure 1 shows a 4-hypernode, 64-processor X2000 server split into four subcomplexes.

(Graphic)

Figure 1 Hypothetical subcomplex configurations

See the Exemplar Programming Guide for more information on subcomplexes.


Using the chatr utility

The chatr (change attributes) utility can be used to print a file's attributes to standard output and to change the file's attributes.

Examples of using chatr

The first example shows the chatr output (file attributes) on a serial executable:

% chatr a.out

a.out: 
         ESOM shared executable 
         shared library dynamic path search:
             SHLIB_PATH     disabled  second
             embedded path  disabled  first  Not Defined
         internal name:
             a.out
         shared library list:
             dynamic   /usr/lib/libc.1e
         shared library binding:
             deferred

The following example shows the chatr output from a parallel executable:

% chatr parallel-a.out

parallel-a.out: 
         ESOM shared executable 
         shared library dynamic path search:
             SHLIB_PATH     disabled  second
             embedded path  disabled  first  Not Defined
         internal name:
             parallel-a.out
         shared library list:
             dynamic   /usr/lib/libpthread.1
             dynamic   /usr/lib/libcps.1
             dynamic   /usr/lib/libail.sl
             dynamic   /usr/lib/libc.1e
         shared library binding:
             deferred

This output lists the extra libraries linked into a parallel executable.

Getting additional chatr information

For more information on using the chatr utility, see the chatr(1) man page.


Using the file utility

The file utility is used to determine file types. It can be used to determine an abundance of information including whether an executable file's parallel flag is set or whether an executable file is in the SOM or ESOM format. (See the section "SOM vs. ESOM" on page 62 for more information on these formats.)

Examples of using file

The first example below shows that the a.out is in the ESOM format:

% file a.out
a.out: PA-RISC2.0 ESOM shared executable dynamically linked -not stripped

The next example shows the output when file is used on a parallel a.out:

% file a.out
a.out: PA-RISC2.0 ESOM shared executable dynamically linked parallel -not stripped

If a file is in the SOM format, SOM does not appear in output; the absence of ESOM indicates a SOM file, as shown in the following example:

% file a.out
a.out: PA-RISC2.0 shared executable dynamically linked -not stripped

Getting additional file information

For more information on using the file utility, see the file(1) man page.


Using the mpa utility

The mpa utility is used to modify program attributes of an executable file. It can control the:

Changes to a program's attributes can be made temporarily (for a single run of the executable) or permanently (the executable maintains the attributes until changed) using -m.

Examples of using mpa

This section shows several short examples of how to use the mpa utility. The examples assume that the executable a.out was compiled using +O3 +Oparallel or +O4 +Oparallel, and hence is a parallel executable.

Run the program a.out on the subcomplex named chemistry:

% mpa -sc chemistry a.out

Run the program a.out using at least 8 threads, but not more than 16 threads:

% mpa -min 8 -max 16 a.out

Run the program a.out, setting the number of threads the executable will demand to four. If four processors are not available, the -over option enables oversubscription (running more than one thread per processor):

% mpa -min 4 -max 4 -over a.out

Run the program a.out, setting the stack size to the largest size supported by the system (by specifying -STACK in all uppercase without an argument):

% mpa -STACK a.out

You can set the stack size to sizes less than the largest allowed by the system by using -stack s, where s is a positive integer.

Getting additional mpa information

For more information on using mpa, see the mpa(1) man page.


Using the sysinfo utility

The sysinfo command provides system information regarding memory, processors, and subcomplexes. This command can produce information such as:

Examples of using sysinfo

This section provides examples of how to use the sysinfo utility.

Display all available system information:

% sysinfo -a

Using -a shows each individual option (except -a) to sysinfo followed by its corresponding output. Due to its length, the output from sysinfo -a is not shown.

Display the total number of CPUs in the system:

% sysinfo -cpu_count
16

The output indicates that the current system has 16 processors.

Display the load average for all subcomplexes:

% sysinfo -ls
System    load average:         1.86  1.92  2.02
EPM       load average:         0.58  0.69  0.83
MLIB      load average:         1.07  1.04  0.79

The output shows three subcomplexes (System, EPM, and MLIB) and their respective load averages.

Display memory statistics for the entire system:

% sysinfo -memc
COMPLEX MEMORY    max   allocated    free
global             0M          0M      0M
node private    1843M        783M   1060M
buffer cache     204M
network cache      0M
total           2048M        783M   1060M

The sysinfo -memc output provides information on the various types of memory available.

Getting additional sysinfo information

For more information on using sysinfo, see the sysinfo(1) man page.


Additional utilities

Table 10 lists other system utilities that you may find helpful in using your Exemplar server. Sources for additional information on these utilities are given in the second column of the table.

Table 10 Additional system utilities

cnx_ps

Prints thread information for processes. See the cnx_ps(1) man page for more information.

make

Maintains, updates, and regenerates groups of programs. See the make(1) man page for more information.

mnm

Monitors total memory usage per hypernode; use -h to get a listing of options.

nm

Prints the name list of an object file or library; nm is useful to see where symbols are defined and referenced. See the nm(1) man page for more information.

<>


Transfer interrupted!