Chapter 3. Product Support

This chapter documents the product components that are supported on the SGI Altix 350 system, SGI Altix 3000 systems, and the Silicon Graphics Prism Visualization System. (For a list of the products, see Table 3-1.)

Descriptions of the product components are grouped in this chapter as follows:

SGI ProPack for Linux Products

Software provided by SGI for the SGI ProPack 3 for Linux Service Pack 6 release consists of a kernel RPM for the SGI Altix 350, SGI Altix 3000, and Silicon Graphics Prism products, SGI Advanced Linux Environment 3.0 RPMs, and value-added software developed by SGI to run specifically on SGI systems. Table 3-1 provides a description of the SGI ProPack 3 for Linux SP6 products.

Table 3-1. SGI ProPack 3 for Linux Service Pack 6 Products

Product

Description

Application performance measuring tools

The following tools perform program optimization:

VTune - This tool, developed and supported by Intel and requires a license, uses the performance measurement facilities of the Itanium processor to take profiles based on elapsed time or other architected events within the processor. These profiles can be used to measure, tune, and improve application performance.

NOTE: VTune is NOT included in SGI ProPack 3 for Linux. If you want to use it, you need to get the software and a license to use it from Intel Corp.

pfmon - This tool, available as open source and licensed under the GPL, provides a command line interface to control the performance measurement facilities of the Itanium processor. Data generated by this tool can be post-processed to produce a variety of reports describing application performance. These reports can be used to measure, tune, and improve application performance. The pfmon package also includes a library interface, libpfmon.a, that can be used to create customized performance measurement tools. For more information on application tuning, see the Linux Application Tuning Guide.

Array Services

Provides a set of tools with kernel support that simplify the management of systems and parallel applications for clusters of SGI systems. For more information, see the Array Services chapter in the Linux Resource Administration Guide.

CpuMemSets

Provides the kernel support and infrastructure for implementing processor and memory placement. For more information, see the CPU Memory Sets and Scheduling chapter in the Linux Resource Administration Guide.

Cpuset System

The Cpuset System is primarily a workload manager tool permitting a system administrator to restrict the number of processors that a process or set of processes may use. A system administrator can use cpusets to create a division of CPUs within a larger system. For more information, see the Cpuset System chapter in the Linux Resource Administration Guide.

CSA

Provides jobs-based accounting of per-task resources and disk usage for specific login accounts on Linux systems. Linux CSA application interface library allows software applications to manipulate and obtain status about Linux CSA accounting methods. For more information, see the CSA chapter in the Linux Resource Administration Guide.

FLEXlm

Provides a floating license, run-time environment. Includes daemons suitable for serving floating licenses.

IOC3 serial driver

Driver that supports dual-port serial card. For more information, see “IOC3 Serial Driver”

.

IOC4 serial driver

Driver that supports the Internal IDE CD-ROM, NVRAM, and Real-Time Clock. For more information, see “IOC4 Serial Driver”

.

kdb

Supports kernel debugging of the running system, either directly from the keyboard or over a serial console.

Kernel partitioning support

Provides the software infrastructure necessary to support a partitioned system, including cross-partition communication support. For more information on system partitioning, see the Linux Configuration and Operations Guide.

Kernel performance improvements

Includes community-based patches such as the O(1) scheduler back-ported from the 2.5.x kernel and included in the SGI kernel, several patches that reduce lock contention on the Big Kernel Lock (BKL), and FRlocks (Fast-Reader Locks), which reduce contention on the xtime_lock (used by gettimeofday(2)) .

L1 and L2 System Controller firmware

Provides support for managing and monitoring the power, cooling, and testing functions for a brick and system compute rack. For more information on system controller commands, see the SGI L1 and L2 Controller Software User's Guide.

LKCD

Provides system crash dump analysis tools including lcrash(1) and all user level scripts required for saving and configuring system crash dumps.

MPT

Provides industry-standard message passing libraries optimized for SGI computers.For more information on MPT, see the Message Passing Toolkit: MPI Programmer's Manual.

NUMA tools

Provides a collection of NUMA related tools (dlook(1), dplace(1), and so on). For more information on NUMA tools, see the Linux Configuration and Operations Guide.

Performance Co-Pilot collector infrastructure

Provides performance monitoring and performance management services targeted at large, complex systems. For more information on Performance Co-Pilot, see Performance Co-Pilot for IA-64 Linux User's and Administrator's Guide.

PROM

Allows the CPU to boot and allows you to perform system administration and software installations. For more information on the levels of PROM in your system and how to flash PROM firmware, see “Obtaining the Latest SGI Altix System Firmware” in Chapter 2

.

runon

Enables running a command on a particular CPU or set of CPUs. For more information on the runon command, see the runon(8) man page and the Linux Configuration and Operations Guide and the Linux Application Tuning Guide.

XFS

Provides a high-performance filesystem for Linux. For more information on XFS, see the XFS for Linux Administration.

XSCSI infrastructure

Provides disk and ATAPI CD-ROM support for the QLogic QLA12160 SCSI Host Bus Adapter. In addition, some QLogic fibre channel host bus adapter cards are supported. For details on which cards are supported, see the SGI Altix 3000 User's Guide or the SGI Altix 350 User's Guide. The infrastructure includes support for robust error handling, failover, and SAN. It can be configured with or without the Linux SCSI layers. If configured without the Linux SCSI layer, XSCSI will make the familiar disk device names (/dev/sda, etc).

XVM

Provides software volume manager functionality such as disk striping and mirroring. For more information on XVM, see the XVM Volume Manager Administrator's Guide.

Tape Stream Driver

The SGI tape stream (TS) tape driver is low-level software that supports all of tape backup applications on SGI Altix systems. These applications include the Data Migration Facility (DMF), the Tape Management Facility (TMF), OpenVault, and xfsdump(8)/xfsrestore(8), the XFS filesystem incremental dump/restore utilities. For more information on the TS driver, see the Linux Configuration and Operations Guide.

OpenGL Multipipe

OpenGL Multipipe enables owners of SGI high performance visualization solutions to achieve higher levels of performance with existing single pipe applications by bringing the power of scalable visualization to applications.For more information, see the SGI OpenGL Multipipe User's Guide.

OpenGL Multipipe SDK

 OpenGL Multipipe Software Development Kit (SDK) is an application programming interface (API) layer for OpenGL that provides a simplified approach to managing graphics applications across multiple graphics subsystems or pipes.

OpenGL Performer

OpenGL Performer is a powerful and comprehensive programming interface for developers creating real-time visual simulation and other professional performance-oriented 3D graphics applications. For more information, see the OpenGL Performer Getting Started Guide.

OpenGL Vizserver

OpenGL Vizserver is a technical and creative computing solution designed to deliver superior visualization, collaboration functionality, and advanced performance to any existing client desktop. For more informaton, see the SGI OpenGL Vizserver User's Guide and SGI OpenGL Vizserver Administrator's Guide.

OpenGL Volumizer

OpenGL Volumizer offers a cross platform, high-level volume rendering API designed for interactive, high quality, scalable visualization of large volumetric data sets. For more information, see the SGI OpenGL Volumizer 2 Programmer's Guide.

SGI does not support the following:

  • Software obtained from other places (that is, not released by SGI).

  • Other releases, updates, or patches from Red Hat.

  • Software patches, drivers, or other changes obtained from the Linux community or other vendors.

  • Kernels recompiled or reconfigured to run with parameter settings or other modules as not specified by SGI. In particular, the following kernel components are not supported due to quality, functionality, or performance issues: ext3, ReiserFS and LVM. SGI supports md for root and swap mirroring only; other md configurations are not supported. You should use XFS and XVM instead.

  • Unsupported hardware configurations and devices.

Operating System Enhancements

Building on the Linux operating system's rapid expansion and improvements for general commercial and enterprise environments, SGI has focused on improving Linux capabilities and performance specifically for high performance computing's (HPC's) big compute and big data environments. Thus, SGI has leveraged its experience with NUMAflex and HPC from its IRIX operating systems and MIPS processor-based systems and concentrated on the Linux kernel improvements specifically important to HPC environments.

CpuMemSets Support

CpuMemSets provides a Linux kernel facility that enables system services and applications to specify on which CPUs they can be scheduled, and from which nodes they can allocate memory. The SGI ProPack kernel and library installation automatically include support for CpuMemSets.

The default configuration makes all CPUs and all system memory available to all applications. You can use the CpuMemSets facility to restrict any process, process family, or process virtual memory region to a specified subset of the system CPUs and memory.

The runon command relies on CpuMemSets to enable a user to run a specified command on a specified list of CPUs. Both a C shared library and Python language module are provided to access the CpuMemSets system interface.

In future releases of SGI ProPack for Linux, SGI anticipates providing additional facilities that provide other system services that provide convenient access to the CpuMemSets facility.

For further documentation and details on CpuMemSets support, see the chapter titled “CPU Memory Sets and Scheduling” in the Linux Resource Administration Guide or browse the files that are installed as part of the CpuMemSets RPM, as listed by the following command:

rpm -ql CpuMemSets

In particular, see the man pages for cpumemsets(2) and runon(8).

CpuMemSets is an SGI open source project, also available from the following location:

http://oss.sgi.com/projects/cpumemsets

Cpuset Support

The cpuset system is primarily a workload manager tool that permits a system administrator to restrict the number of processors that a process or set of processes can use.

A cpuset is a named set of CPUs, which can be defined to be restricted or open. A restricted cpuset allows only processes that are members of the cpuset to run on the set of CPUs. An open cpuset allows any process to run on its CPUs, but a process that is a member of the cpuset can run only on the CPUs belonging to the cpuset. A cpuset is defined by a cpuset configuration file and a name.

A system administrator can use cpusets to create a division of CPUs within a larger system. Such a divided system allows a set of processes to be contained to specific CPUs, reducing the amount of interaction and contention those processes have with other work on the system. In the case of a restricted cpuset, the processes that are attached to that cpuset will not be affected by other work on the system; only those processes attached to the cpuset can be scheduled to run on the CPUs assigned to the cpuset. An open cpuset can be used to restrict processes to a set of CPUs so that the effect these processes have on the rest of the system is minimized. For further documentation and details on cpusets, see chapter 5, “Cpuset System” in the Linux Resource Administration Guide.

Comprehensive System Accounting (CSA)

The port of Comprehensive System Accounting (CSA) software packages from IRIX to Linux is the result of an open source collaboration between SGI and Los Alamos National Laboratory (LANL) to provide jobs-based accounting of per-task resources and disk usage for specific login accounts on Linux systems.

Providing extensive system accounting capabilities is often important for very large systems, especially when the system will be shared or made available for other organizations to use. CSA uses a Job Containers feature, which provides on Linux the notion of a job. A job is an inescapable container and a collection of processes that enables CSA to track resources for any point of entry to a machine (for example, interactive login, cron job, remote login, batched workload, and so on).

The Linux CSA application interface library allows software applications to manipulate and obtain status about Linux CSA accounting methods.

CSA on Linux is an SGI open source project, also available from the following location:

http://oss.sgi.com/projects/csa

For further documentation and details on CSA support, see the chapter titled “Comprehensive System Accounting” in the Linux Resource Administration Guide.

Partitioning

SGI provides the ability to divide a single SGI Altix 3000 system into a collection of smaller system partitions. Each partition runs its own copy of the operating system kernel and has its own system console, root filesystem, IP network address, and physical memory. All partitions in the system are connected via the SGI high-performance NUMAlink interconnect, just as they are when the system is not partitioned. Thus, a partitioned system can also be viewed as a cluster of nodes connected via NUMAlink.

Benefits of partitioning include fault containment and the ability to use the NUMAlink interconnect and global shared memory features of the Altix 3000 to provide high-performance clusters.

For further documentation and details on partitioning, see the Linux Configuration and Operations Guide.

I /O Subsystems

Although some HPC workloads might be mostly CPU bound, others involve processing large amounts of data and require an I/O subsystem capable of moving data between memory and storage quickly, as well as having the ability to manage large storage farms effectively. The SCSI subsystem, XFS filesystem, XVM volume manager, and data migration facilities were leveraged from IRIX and ported to provide a robust, high-performance, and stable storage I/O subsystem on Linux.

The following sections describe persistent PCI-X bus numbering, persistent naming of Ethernet devices, the XSCSI subsystem, the XSCSI-SCSI subsystem, the XFS filesystem, and the XVM Volume Manager.

Persistent PCI-X Bus Numbering

Persistent PCI-X bus numbering ensures that bus numbers can remain the same across reboots in case of faulty hardware or reconfiguration. During platform initialization, as buses are discovered, they are assigned a logical bus number. Each logical bus number is unique, systemwide. The default number of buses supported by SGI Altix 3000 systems is 256 (numbered 0 to 255).

By default, bus numbers are allocated starting from the lowest C-brick module ID to which the I/O brick is connected. An I/O brick is either an IX-brick or a PX-brick on SGI Altix 3000 systems. Each I/O brick is allocated 0x10 buses, although the current I/O bricks support only six buses each. Therefore, bus numbers are not contiguous across the system. Bus numbers are sparse and have holes in them.

An I/O brick has six physical buses. These buses are numbered 0x1 through 0x6, left to right, looking at the back of the I/O brick. If there is more than one I/O brick on the system, the buses on the next I/O brick are numbered 0x11 through 0x16. The rationale for this numbering is that the bus numbers of each I/O brick are stamped on the back of the brick and they start from 1. Therefore, the rightmost digit of a bus number corresponds to the actual stamped number on the I/O brick.

If you have only one I/O brick, you do not need persistent bus numbering. However, if you have more than one I/O brick, persistent bus numbering is strongly recommended, so that if an I/O brick fails to boot, your bus numbers are still the same.

To make use of persistent bus numbering, you must supply the ioconfig= parameter to the kernel.

The ioconfig= parameter takes a comma-separated list of I/O brick numbers as an argument. The following manual boot example uses elilo. It tells the kernel that the I/O brick represented by 101.01 is assigned bus numbers 0x1 through 0x6 and the I/O brick represented by 101.02 is assigned bus numbers 0x11 through 0x16.

Shell> elilo vmlinux ioconfig="101.01,101.02" root=/dev/xscsi/pci01.03.0-1/target1/lun0/part3

You can find the numbers to use with ioconfig by looking at the components of your system from your L2 controller, as in the following example:

l2-pumpkin-001-L2>pwr
001c11:
power appears on
001c27:
power appears on
101i01:
power appears on
101p02:
power appears on

In this example, 101i01 is an IX-brick and represents the 101.01 in the previous elilo boot example. The 101p02 notation is a PX-brick and represents 101.02.

Most customers will have their system set up to boot automatically. This means that you should update your elilo.conf file with the ioconfig parameter. The . elilo.conf file is available in the /boot/efi/EFI/sgi directory on your Linux system. The following is an example elilo.conf file:

prompt
timeout=50
relocatable
default=sgilinux
append="ioconfig=101.01,101.02"

image=vmlinuz-2.4.19-sgi21r4
        label=sgilinux
        read-only
        root=/dev/xscsi/pci01.03.0-1/target1/lun0/part3

In the previous example, pay special attention to the append= line. That is, notice where the ioconfig information goes when using elilo.conf.

Persistent Naming of Ethernet Devices

Persistent naming of Ethernet devices is an SGI proprietary mechanism and is supported on SGI Altix 3000 systems. Persistent naming refers to the mechanism that ensures that the Gigabit Ethernet card on the IO9 interface of an SGI Altix 3000 system is set up to always be eth0. It guarantees that the base Ethernet device number is assigned to the correct MAC address on an SGI Altix 3000 system even when multiple Ethernet devices are present in the system.

The /etc/sysconfig/networking/eth0_persist file contains the mapping of Ethernet device numbers to MAC addresses. If the file does not exist, it is created by the /etc/rc.d/init.d/eth_persist script, which is run at boot time. To ensure that eth0 is indeed assigned to the MAC address of the IO9 Ethernet card, it might be necessary to edit the file after the first time an SGI Altix 3000 system has been brought up after a clean install.

Besides ensuring that the mapping of Ethernet device numbers to MAC addresses persists as cards are added to a system, persistent naming also allows system administrators to control the way in which Ethernet devices are numbered. For example, if the Ethernet card with device number ethX is lost and the system administrator tries to recover by using the Ethernet card with device number ethY, it is possible to force the latter card to take on Ethernet device number ethX by editing the /etc/sysconfig/networking/eth0_persist file accordingly.

Following is a sample /etc/sysconfig/networking/eth0_persist file:

eth0 08:00:69:13:dc:ec
eth1 08:00:69:13:72:e8

The content of this file results in the following configuration:

[root]# ifconfig -a
eth0 Link encap:Ethernet  HWaddr 08:00:69:13:DC:EC
     inet addr:128.162.246.125 Bcast:128.162.246.255 Mask:255.255.255.0
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:843 errors:0 dropped:0 overruns:0 frame:0
     TX packets:1245 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:100
     RX bytes:386044 (376.9 Kb)  TX bytes:126741 (123.7 Kb)
     Interrupt:59

eth1 Link encap:Ethernet  HWaddr 08:00:69:13:72:E8  
     BROADCAST MULTICAST  MTU:1500  Metric:1
     RX packets:136 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:100 
     RX bytes:8850 (8.6 Kb)  TX bytes:0 (0.0 b)
     Interrupt:63

If the slot directly to the right of the IO9 is populated by an Ethernet board, that is, bus 1, slot 2, and if you re-install Linux after it has been placed there or if you remove the eth0_persist persistent naming file, the IO9 could become eth1 instead of eth0. This is not recommended because it could affect your product licenses. If the Ethernet board is in any other IX-brick slot, you will not encounter this problem.

If it is necessary to have an Ethernet board in IO9 bus 1 slot 2, install the OS, including SGI ProPack, with the Ethernet board removed. After SGI ProPack is installed, you can replace the Ethernet board in bus 1 slot 2.

XSCSI Subsystem

The SGI XSCSI subsystem on Linux leverages from IRIX functionality to provide more robust error handling, failover, and storage area network (SAN) infrastructure support as well as long-term large system performance tuning. XSCSI takes advantage of specific features of SGI architecture that standard open source drivers cannot without rewriting.

The naming convention of XSCSI device names is shown in the following example:

/dev/xscsi/pci01.03.0-1/target1/lun0/part1

Components of the XSCSI device name are as follows:

pci01 

System bus number 0x1

03 

Device number 3 on that bus

0-1 

Logical unit 0 port 1

Notice that the device number (slot number), logical unit, and port number are fixed. These will never change. However, the system bus number could change because of a hardware problem (such as the I/O brick not booting) or a reconfiguration.

Persistent PCI-X bus numbering (see “ Persistent PCI-X Bus Numbering”), if enabled, provides persistent naming to prevent bus number changes even when the hardware fails or is reconfigured. If you use XSCSI names for mounting or locating devices and you also use persistent bus numbering, your XSCSI device names will always be persistent across reboots.

XSCSI-SCSI Subsystem

The XSCSI-SCSI subsystem provides SCSI device emulation of XSCSI devices. It allows programs written for the SCSI disk driver, the SCSI tape driver, and the SCSI generic driver to use devices controlled by the XSCSI drivers.

Serial Drivers

This section describes the IOC3 and IOC4 serial drivers, as follows:

IOC3 Serial Driver

The IOC3 driver supports a dual-port serial card.

Serial ports are supported on the IOC3 base I/O chipset and the following device nodes are created, as follows

/dev/ttyIOC3/0
/dev/ttyIOC3/1
/dev/ttyIOC3/2
/dev/ttyIOC3/3

The IOC3 serial card (PCI-SER-10002) for SGI ProPack 3 SP6 uses the following device naming convention:

/dev/ttyIOC3/line

where:

  • line is ((card number * 4) + (2 * port) + mode)

  • port is 0 for port A, 1 for port B, mode is 0 for rs232, 1 for rs422

Each card has two ports and each port has two modes (even modes are rs232 devices, odd modes are rs422 devices).

For a single card configuration, the node definition in /dev/ttyIOC3/device node is similar to the following:

crw-------    1 root     root      62,   1 Feb  7 18:11 0
crw-------    1 root     root      62,   2 Dec 31  1969 1
crw-------    1 root     root      62,   3 Feb  8 16:41 2
crw-------    1 root     root      62,   4 Dec 31  1969 3

Device nodes are:

  • 0 is port A, rs232 mode

  • 1 is port A, rs422 mode

  • 2 is port B, rs232 mode

  • 3 is port B, rs422 mode

For a two card configuration, the node definition in /dev/ttyIOC3/device node is, is similar to the following:

crw-------    1 root     root      62,   1 Feb  7 18:11 0
crw-------    1 root     root      62,   2 Dec 31  1969 1
crw-------    1 root     root      62,   3 Feb  8 16:41 2
crw-------    1 root     root      62,   4 Dec 31  1969 3
crw-------    1 root     root      62,   5 Feb  7 18:11 4
crw-------    1 root     root      62,   6 Dec 31  1969 5
crw-------    1 root     root      62,   7 Feb  8 16:41 6
crw-------    1 root     root      62,   8 Dec 31  1969 7

Device nodes are:

  • 0 is card 0, port A, rs232 mode

  • 1 is card 0, port A, rs422 mode

  • 2 is card 0, port B, rs232 mode

  • 3 is card 0, port B, rs422 mode

  • 4 is card 1, port A, rs232 mode

  • 5 is card 1, port A, rs422 mode

  • 6 is card 1, port B, rs232 mode

  • 7 is card 1, port B, rs422 mode

IOC4 Serial Driver

The IOC4 driver supports the Internal IDE CD-ROM, NVRAM, and Real-Time Clock.

Serial ports are supported on the IOC4 base I/O chipset and the following device nodes are created:

/dev/ttyIOC4/0
/dev/ttyIOC4/1
/dev/ttyIOC4/2
/dev/ttyIOC4/3

Using Standard Linux SCSI Drivers on XSCI Device

For information on using standard Linux SCSI device drivers on XSCSI devices, see the Linux Configuration and Operations Guide.

XFS Filesystem

The SGI XFS filesystem provides a high-performance filesystem for Linux. XFS is an open-source, fast recovery, journaling filesystem that provides direct I/O support, space preallocation, access control lists, quotas, and other commercial file system features. Although other filesystems are available on Linux, performance tuning and improvements leveraged from IRIX make XFS particularly well suited for large data and I/O workloads commonly found in HPC environments.

For more information on the XFS filesystem, see XFS for Linux Administration.

XVM Volume Manager

The SGI XVM Volume Manager provides a logical organization to disk storage that enables an administrator to combine underlying physical disk storage into a single logical unit, known as a logical volume. Logical volumes behave like standard disk partitions and can be used as arguments anywhere a partition can be specified.

A logical volume allows a filesystem or raw device to be larger than the size of a physical disk. Using logical volumes can also increase disk I/O performance because a volume can be striped across more than one disk. Logical volumes can also be used to mirror data on different disks.

This release adds a new XVM multi-host failover feature. For more information on this new feature and XVM Volume Manager in general, see XVM Volume Manager Administrator's Guide .

Tape Stream Driver

The SGI tape stream (TS) tape driver is low-level software that supports all of tape backup applications on SGI Altix systems. These applications include the Data Migration Facility (DMF), the Tape Management Facility (TMF), OpenVault, and xfsdump(8)/xfsrestore(8), the XFS filesystem incremental dump/restore utilities. For more information on the TS driver, see the Linux Configuration and Operations Guide.

HPC Application Tools and Support

SGI has ported HPC libraries, tools, and software packages from IRIX to Linux to provide a powerful, standards-based system using Linux and Itanium 2-based solutions for HPC environments. The following sections describe some of these tools, libraries, and software.

Message Passing Toolkit

The SGI Message Passing Toolkit (MPT) provides industry-standard message passing libraries optimized for SGI computers. On Linux, MPT contains MPI and SHMEM APIs, which transparently utilize and exploit the low-level capabilities within SGI hardware, such as its block transfer engine (BTE) for fast memory-to-memory transfers and the hardware memory controller's fetch operation (fetchop) support. Fetchops enable direct communication and sychronization among multiple MPI processes while eliminating the overhead associated with system calls to the operating system.

Parallel workloads, such as MPI jobs, can be launched, monitored, and controlled across a cluster or partitioned system using the SGI Array Services software. Array Services provides the notion of an array session, which is a set of processes that can be running on different cluster nodes or system partitions. Array Services is implemented using Process Aggregates (PAGGs), which is a kernel module that provides process containers. PAGGs has been open-sourced by SGI for Linux.

For more information on the Message Passing Toolkit, see the Message Passing Toolkit (MPT) User's Guide.

Performance Co-Pilot

The SGI Performance Co-Pilot software was ported from IRIX to Linux to provide a collection of performance monitoring and performance management services targeted at large, complex systems. Integrated with the low-level performance hardware counters and with MPT, Performance Co-Pilot provides such services as CPU, I/O, and networking statistics; visualization tools; and monitoring tools.

For more information on Performance Co-Pilot, see the Performance Co-Pilot for IA-64 Linux User's and Administrator's Guide.

System Management

This section describes system management tools. These include the hardware and software environment required to boot the system, license management, system console, and system controllers.

PROM Chips

Programmable read-only memory ( PROM) chips are placed in your computer at the factory with software programmed into them that allows the CPU to boot and allows you to perform system administration and software installations. The PROM chips are not part of your disk or your operating system; they are the lowest level of access available for your system. You cannot erase them or bypass them. For more information on PROM and the L1 controller, see the SGI L1 and L2 Controller Software User's Guide.

Extensible Firmware Interface (EFI)

SGI Altix 3000 systems provide the Extensible Firmware Interface (EFI), a supporting platform to provide input to the CPU and to handle its output. In addition, the EFI controls the server's boot configuration, maintaining the boot menu in durable, nonvolatile memory.

SGI ProPack 3 uses the elilo-3.3 package, which is fully compliant with EFI specification 1.10 with regard to where the bootloader (elilo.efi) should be located in the EFI system partition. According to that specification, the bootloader must be located in a dedicated vendor directory. On SGI Altix systems, that directory is /boot/efi/efi/sgi/. As of version 3.3, elilo looks for its configuration file only in the directory from which it is loaded. Because this also applies to the kernel, the kernel image, which was previously installed in /boot/efi/, is now installed in /boot/efi/efi/sgi/. For further documentation and details about this change, see the elilo documentation in /usr/share/docs/.

From the EFI prompt, you can perform basic file-management tasks (including text editing), make configuration changes, or write scripts that execute at boot time. For a summary of EFI commands, see Table 3-2.

Table 3-2. EFI Commands

EFI Command

Description

alias [-bdv] [sname] [value]

Sets or gets alias settings

attrib [-b] [+/- rhs] [file]

Views or sets file attributes

bcfg 

Configures boot driver and load options

cd [path]

Updates the current directory

cls [background color]

Clears screen

comp file1 file2

Compares two files

cp file [file] ... [dest]

Copies files or directories

date [mm/dd/yyyy]

Gets or sets date

dblk device [Lba] [blocks]

Performs hex dump of block I/O devices

dh [-b] [-p prot_id] | [handle]

Dumps handle information

dmpstore

Dumps variable store

echo [-on | -off] | [text]

Echoes text to stdout or toggles script echo

edit [file name]

Edits a file

endfor

Script only: Delimits loop construct

endif

Script-only: Delimits IF THEN construct

err [level]

Sets or displays error level

exit

Exits

flash filename

Flashes PROM on C-brick

for var in set

Script-only: Indicates loop construct

getmtc

Gets next monotonic count

goto label

Script-only: Jumps to label location in script

guid [-b] [sname]

Dumps known guid IDs

help [-b] [internal command]

Displays this help

if [not] condition then

Script-only: Indicates IF THEN construct

load driver_name

Loads a driver

ls [-b] [dir] [dir] ...

Obtains directory listing

map [-bdvr] [sname[:]] [handle]

Maps shortname to device path

mem [address] [size] [;MMIO]

Dumps memory or memory mapped I/O

memmap [-b]

Dumps memory map

mkdir dir [dir] ...

Makes directory

mm address [width] [;type]

Modifies memory: Mem, MMIO, IO, PCI

mode [col row]

Sets or gets current text mode

mount BlkDevice [sname[:]]

Mounts a filesytem on a block device

mv sfile dfile

Moves files

pause

Script-only: Prompts to quit or continue

pci [bus dev] [func]

Displays PCI device(s) info

reset [cold/warm] [reset string]

Indicates cold or warm reset

rm file/dir [file/dir]

Removes file or directories

set [-bdv] [sname] [value]

Sets or gets environment variable

setsize newsize fname

Sets the files size

stall microseconds

Delays for x microseconds

time [hh:mm:ss]

Gets or sets time

touch [filename]

Views or sets file attributes

type [-a] [-u] [-b] file

Types file

ver

Displays version information

vol fs [volume label]

Sets or displays volume label


FLEXlm

FLEXlm is a flexible license management system from Macrovision that lets independent software vendors (ISVs) license their products and helps system administrators install and manage licenses with minimal overhead. It supports a wide range of licensing options, including simple node-locked licenses and floating licenses with redundant servers.

To build licensed software, ISVs must purchase a set of keys from Macrovision. System administrators can install license servers anywhere. Products purchased from SGI are typically licensed using FLEXlm.

For more information, visit

http://www.macrovision.com/solutions/esd/flexlm/flexlm.shtml

SGIconsole

SGIconsole is a suite of software that allows you to manage multiple SGI servers running the IRIX or Linux operating system. These servers include SGI servers, SGI partitioned systems and large, single-system-image servers, including legacy SGI servers and Silicon Graphics graphical systems. SGIconsole can also provide console services for non SGI servers.

SGIconsole consists of software suite including the Console Manager package and Performance Co-Pilot, which provides access to common remote management tools for hardware and software. SGIconsole can manage SGI Altix and SGI Origin servers better than any other console server product. SGIconsole can communicate with L1, L2, module System Controller (MSC), and rackmount system multimodule System Controller (MMSC) system controllers and provide reset/nonmaskable interrupt (NMI)/power up/power down functionality for SGI servers.

Console Manager is a graphical user interface for the SGIconsole management and monitoring tool used to control multiple SGI servers. SGIconsole also has a command line interface. For more information on SGIconsole, see the SGIconsole Start Here.

System Controller Firmware

This section describes the system controller firmware used in SGI Altix systems.

L1 and L2 System Controllers

The L1 and L2 controllers are system controller firmware used in SGI systems.

The L1 controller is embedded in each brick in SGI Origin and Onyx 3000 series systems and in SGI Altix 3000 systems. It provides power and control sequencing, along with temperature and power monitoring for each brick.

The L2 controller is a rack-level controller that monitors and controls the bricks in its rack. All L2 controllers in a system are networked together and they consolidate the control and monitoring information from each brick to provide system-level control and monitoring.

The following references describe how to install and connect to an L1 or L2 controller:

  • Procedure 3-10, “Determining the Hardware Address of the L2 System Controller” in chapter 3 of the SGIconsole 2.0 Start Here describes how the L2 system controllers come online after a system boots and how to set the eth1 port on the SGI 1100 server to match when a DHCP server is running on a subnet.

  • Procedure 3-2, “Determing the L2 Address of a New L2 Controller” in chapter 3 of the Console Manager for SGIconsole Administrator's Guide describes how to find the L2 address of a new L2 controller.

  • Procedure 4-1, “Connecting to a System Console” in chapter 4 of the Console Manager for SGIconsole Administrator's Guide describes how to connect to a system console.

  • Procedure 2-2, “Connecting to the L1 Controller” in chapter 2 of the Linux Configuration and Operations Guide describes how to connect to an L1 controller and from there an L2 controller with or without SGIconsole installed.

  • Procedure 2-3, “Connecting to the L2 Controller” in chapter 2 of the Linux Configuration and Operations Guide describes how to connect to the L2 controller with or without SGIconsole installed.

For more information on the L1 and L2 system controller firmware, see the SGI L1 and L2 Controller Software User's Guide.

L3 System Controller

The L3 controller is a Linux software package that resides on a PC workstation or laptop computer. It provides remote support, system controller consoles, and system-level maintenance functions. The L3 controller software is obtained through the "System Controller Software 1.x" release.

NUMA Data Placement Tools

This section describes the commands that are currently provided with the collection of NUMA related tools.

dlook Command

The dlook(1) command displays the memory map and CPU use for a specified process. The following information is printed for each page in the virtual address space of the process:

  • The object that owns the page (file, SYSV shared memory, device driver, and so on)

  • Type of page (RAM, FETCHOP, IOSPACE, and so on)

  • If RAM memory, the following information is supplied:

    • Memory attributes (SHARED, DIRTY, and so on)

    • Node on which that the page is located

    • Physical address of page (optional)

Optionally, the amount of elapsed CPU time that the process has executed on each physical CPU in the system is also printed.

dplace Command

The dplace(1)  command binds a related set of processes to specific CPUs or nodes to prevent process migrations. In some cases, this tool improves performance because of the occurrence of a higher percentage of memory accesses to the local node.

For more information on NUMA tools, see chapter 4, “NUMA Tools” in the Linux Configuration and Operations Guide and chapter 5, “Data Placement Tools” in the Linux Application Tuning Guide.

Graphics APIs and Software

This section describes graphics APIs and software supported on SGI ProPack 3 SP3 and covers the following topics:

OpenGL Multipipe

OpenGL Multipipe enables owners of high performance visualization solutions from Silicon Graphics to create high-resolution SGI Reality Center environments and achieve higher levels of performance while continuing to use existing single pipe applications. It brings the power of scalable visualization to new applications and enables organizations to create better products, generate new ideas, and increase operational efficiency.

OpenGL Multipipe enables high levels of screen space scaling and low-to-moderate levels of performance scaling without application modification. OpenGL Multipipe uses a flexible architecture that enables a logical screen to be built up from from individual physical screens that can be located anywhere within the logical screen space. This enables the creation of large walls with 2D arrays of displays, wide panoramic screens with overlapping displays for edge blending and the use of a scalable graphics compositor to drive a single screen with increased performance. For more information about OpenGL Multipipe, visit http://www.sgi.com/products/software/multipipe/ .

OpenGL Multipipe Software Development Kit (SDK)

OpenGL Multipipe SDK is an API layer for OpenGL that provides a simplified approach to managing graphics applications across multiple graphics subsystems or pipes and focused on delivering run-time scalability on SGI scalable graphics servers.

Applications written using the OpenGL Multipipe SDK API can run seamlessly from desktop single-processor, single-pipe systems up to large multiprocessor, multipipe scalable graphics systems. A simple configuration file defines the desired configuration of the application, such that the same application can support normal office environments, SGI Reality Center rooms, walls, immersive desk displays, and domes. In addition, the same application can take advantage of scalable graphics systems by combining the power of multiple graphics pipes into a single display output, which in turn can be scaled to drive multiple display devices. OpenGL Multipipe SDK provides a straightforward solution for graphics applications that were designed for single-processor, single-pipe applications to scale seamlessly when run on graphics systems with multiple processors and multiple graphics pipes. For more information about OpenGL Multipipe SDK, visit http://www.sgi.com/products/software/multipipe/sdk/ .

OpenGL Performer

OpenGL Performer is a powerful and comprehensive programming interface for developers creating real-time visual simulation and other professional performance-oriented 3D graphics applications. The toolkit simplifies development of applications used for visual simulation, manufacturing, simulation-based design, virtual reality, scientific visualization, interactive entertainment, broadcast video, architectural walk-through, and computer aided design.

The latest release is built atop the industry standard OpenGL graphics library, interoperates with OpenGL Volumizer, OpenGL Multipipe SDK, and OpenGL Vizserver, includes both ANSI C and C++ bindings, and is available for the IRIX operating system, and the Linux, Windows XP, and Windows 2000 operating systems. For more information about OpenGL Performer, visit http://www.sgi.com/software/performer/.

OpenGL Vizserver

OpenGL Vizserver is a technical and creative computing solution designed to deliver superior visualization, collaboration functionality, and advanced performance to any client, whether on a desktop workstation or wireless tablet. OpenGL Vizserver allows users to remotely view and interact with large data sets from any other system at any location in an organization and to collaborate with multiple colleagues using these same applications and data.

OpenGL Vizserver enables a single SGI advanced visualization system to act as a multiuser graphics server which distributes remote and collaborative visualization sessions to client systems running a mix of desktop operating systems. With OpenGL Vizserver, graphics processing is handled entirely on the SGI advanced visualization system using full 3D hardware acceleration; the client machine simply decompresses and displays the image. This leverages existing internal infrastructure and allows customers to leverage the power of the world-class SGI advanced visualization systems on common desktop workstations such as Silicon Graphics visual workstations, Sun Solaris systems or Intel architecture PCs running the Linux, Microsoft Windows NT, Windows 2000, or Windows XP operating systems. For more information about OpenGL Vizserver, visit http://www.sgi.com/products/software/vizserver/ .

OpenGL Volumizer

OpenGL Volumizer is a cross platform, high-level volume rendering API for the energy, manufacturing, medical, and sciences markets. OpenGL Volumizer is a revolutionary graphics API designed for interactive, high quality, scalable visualization of large volumetric data sets. OpenGL Volumizer provides a high-level interface to OpenGL hardware to allow application writers and researchers to visualize multiple gigabytes of volumetric data. The API uses OpenGL for volume rendering and hence allows standard graphics applications to treat volumetric and surface data in a similar fashion.

OpenGL Volumizer is a library of C++ classes that facilitates the manipulation and display of volumetric data sets common in geo-science, medical, scientific and engineering applications. It provides a layer of functionality that sits on top of OpenGL and integrates seamlessly into higher-level toolkits and applications. For more information on OpenGL Volumizer, visit http://www.sgi.com/products/software/volumizer/ .