Mpss Users Guide
Mpss Users Guide
US
Revision: 3.6.1
You may not use or facilitate the use of this document in connection with any infringement or other legal analysis
concerning Intel products described herein. You agree to grant Intel a non-exclusive, royalty-free license to any patent
claim thereafter drafted which includes subject matter disclosed herein.
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest
Intel product specifications and roadmaps.
The products described may contain design defects or errors known as errata which may cause the product to deviate
from published specifications. Current characterized errata are available on request.
Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-
548-4725 or by visiting: http://www.intel.com/design/literature.htm
Intel, the Intel logo, Intel Xeon Phi, and Xeon are trademarks of Intel Corporation in the U.S. and/or other countries.
Version 3.6 Release of the 3.6 Intel® MPSS User’s Guide September 2015
Version 3.6 Initial draft of the 3.6 Intel® MPSS User’s Guide August 2015
List of Tables
Table 1: Intel® Productivity Tools Supported by Intel® MPSS 3.6.1 ......................... 27
Table 2: Supported Host Operating Systems ....................................................... 32
Table 3: System V format commands ................................................................ 34
Table 4: File System Characteristics ................................................................... 55
Table 5: OFED Distribution vs. Supported Features .............................................. 58
This section begins with an overview of the remainder of the document, presents notation
used in this document, lists further documentation available for selected Intel® MPSS
components, and concludes with a table of terminology.
It is recommended that the reader review at least sections 1-3 prior to a first installation of
the software stack.
Section 4 is an in-depth discussion of the concepts and processes for configuring an Intel®
Xeon Phi™ coprocessor installation.
Section 5 describes supported network configurations, when each might be used, and how to
configure each. It also discusses how to configure NFS mounts, as well as DHCP configuration.
Section 6 describes how to configure user credentials on the Intel® Xeon Phi™ coprocessor.
Section 7 presents methods for adding software to the Intel® Xeon Phi™ coprocessor file
system.
Section 8 explains how to cross-compile software for execution on Intel® Xeon Phi™
coprocessor, as well as how to compile and build on the Intel® Xeon Phi™ coprocessor itself
(native build).
Section 9 presents configuration options for Intel® MPSS components, including the Intel®
Xeon Phi™ coprocessor Linux* kernel, the host driver, the SCIF communication API, the COI
offload interface, the virtual console, and the Virtio block device.
Appendix C presents sysfs entries exposed by the Intel® MPSS host driver.
Appendix F provides detailed instructions on installing several optional Ganglia, Micperf and
Reliability Monitor components.
Appendix H is a tutorial describing how services are started on supported Linux* host
Operating Systems and the Intel® Xeon Phi™ coprocessor.
Appendix I presents some tools and techniques that can be used in troubleshooting and
debugging Intel® Xeon Phi™ coprocessor issues.
Beginning with the Intel® MPSS 3.2 release, the significant new features in each release are
described in a document entitled Prominent features of the Intel® Manycore Platform Software
Stack (Intel® MPSS) version M.N, where M.N is the software stack release number. These
documents can be found by searching on https://software.intel.com/en-us/mic-developer.
This guide also italicizes the software stack configuration parameter names when they appear
in prose sections. For example: When the RootDevice parameter <type> is NFS or SplitNFS…
Files and directories in prose sections are italicized. For example: /etc/mpss/default.conf.
micN denotes any coprocessor name of the form mic0, mic1, etc. where N=0, 1, 2, … , 255;
typically used in file names. For example, the file name micN.conf denotes any of the file
names mic0.conf, mic1.conf, etc.
Emboldened text indicates the exact characters you type as input. It is also used to highlight
the elements of a graphical user interface such as buttons and menu names. For example:
Select the ENTER button, Select Copy from the Edit menu.
“[host]$” at the beginning of a line denotes a command entered on the host with user or
root privileges.
“[host]#” at the beginning of a line denotes a command entered on the host with root
privileges.
“[micN]$” at the beginning of a line denotes a command entered on a coprocessor with user
or root privileges.
“[micN]#” at the beginning of a line denotes a command entered on a coprocessor with root
privileges.
For example the following shows the micctrl --config command executed as a non-root user,
and the truncated output generated by micctrl:
$MPSS361 is the top directory into which the mpss-3.6.1-linux.tar file has been expanded.
$MPSS361_K1OM is the directory into which the mpss-3.6.1-k1om.tar file has been expanded.
Normally this will be $MPSS361/k1om.
$MPSS361_SRC is the directory into which the mpss-src-3.6.1.tar file has been expanded.
Normally this will be $MPSS361/src.
$DESTDIR is a symbol that indicates the directory path variable that micctrl prepends to all
micctrl accesses of micctrl created files. Refer to Appendix B.2.1 for details.
$CONFIGDIR is a symbol that indicates the directory path variable at which micctrl creates
software stack-specific configuration files. Refer to Appendix B.2.1 for details.
$VARDIR is a symbol that indicates the directory path variable at which micctrl --initdefaults
and --resetconfig commands create the common and micN overlay hierarchies, and at which
the micctrl --rootdev command places a ramfs file system image or NFS file system hierarchy.
Refer to Appendix B.3.2.1 for details.
$SRCDIR is a symbol that indicates the directory path at which the micctrl --initdefaults,
--resetdefaults, --resetconfig, and --cleanconfig commands look for the coprocessor’s Linux*
kernel image and default file system image. Refer to Appendix B.3.2.2 for details.
$NETDIR is a symbol that indicates the directory path at which the micctrl --initdefaults,
--resetdefaults, --resetconfig, and --cleanconfig commands create and/or edit control files.
Refer to Appendix B.3.2.3 for details.
(x|y|…|z) is used in micctrl command syntax and the software stack configuration
parameter syntax to indicate a choice of values.
It indicates that there are two basic forms. The first takes a Filelist or Simple or File type,
followed by <source> and <target> values to be provided, followed by a choice of on or off.
The second form takes the RPM type, followed by only a <source> value to be provided,
followed by a choice of on or off.
micctrl --userupdate=(none|overlay|merge|nochange) \
[(-a |--pass=)(none|shadow)] [--nocreate]
It indicates that the userupdate method must be set to one of none, overlay, merge, or
nochange. An optional argument can be invoked using either -a or --pass and must specify
one of none or shadow (For Example: -a none or --pass=none). Finally, there is an
optional --nocreate command.
The --nocreate option is italicized, indicating that it is a common suboption. These are
suboptions of multiple commands, which, for brevity, are defined once in Appendix B.3.2.
1.4 Terminology
K1OM Architecture of the Intel® Xeon Phi™ coprocessor x100 Product Family
MIC Many Integrated Cores, an informal name for the KNC architecture
When one or more PCIe based InfiniBand* host channel adapters, such as Intel® True Scale
HCAs are installed in the platform, coprocessors may communicate at high speed with Intel®
Xeon™ processors and coprocessors in other platforms in a cluster configuration. Figure 2
shows a typical Intel® Xeon Phi™ coprocessor based compute node within a cluster. Within a
single system, the coprocessors can communicate with each other through the PCIe peer-to-
peer interconnect without any intervention from the host. Other configurations are discussed
in Section 3.2.
The Intel® Xeon Phi™ coprocessor is composed of more than 50 processor cores, caches,
memory controllers, PCIe client logic, and a very high bandwidth, bidirectional ring
interconnect (Figure 3). Each of the cores comes complete with a private L2 cache that is kept
fully coherent by a global-distributed tag directory. The coprocessors’ K1OM architecture cores
support an X86 instruction set with additional vector instructions unique to the architecture.
The coprocessors’ K1OM ABI differs from the Intel® Xeon’s™ ABI. For these reasons, Intel®
Xeon™ binaries cannot be run on the coprocessor, and vice versa.
The memory controllers and the PCIe client logic provide a direct interface to the GDDR5
memory on the coprocessor and the PCIe bus, respectively. All these components are
connected together by the ring interconnect.
Intel® Xeon Phi™ coprocessors do not have permanent file system storage, such as an SSD.
Instead the file system is maintained in RAM and/or is remotely (for instance: NFS) mounted.
Each Intel® Xeon Phi™ coprocessor runs a standard Linux* kernel (2.6.38 as of this writing)
with some minor accommodations for the MIC hardware architecture. Because it runs its own
OS, the coprocessor is not hardware cache coherent with the host Intel® Xeon™ processors or
other PCIe devices.
For more information on Intel® Xeon Phi™ coprocessor architecture, visit the Intel® Xeon Phi™
Product Family page.
on SCIF and the VEth (Virtual Ethernet) driver to launch processes on an Intel® Xeon Phi™
coprocessor.
Intel® Tools (C++/Fortran Intel® MPSS Utilities Intel® MPSS Utilities Intel® Tools (C++/Fortran
runtime, Intel® MPI, MKL, (micctrl, micinfo, (micctrl, micinfo, runtime, Intel® MPI, MKL,
vTune, other libraries) micflash, ) micflash, ) vTune, other libraries)
installation. After installation the Intel® Xeon Phi™ coprocessor Linux* installation will need to
be configured according to the expected workload/application. Configuration will be covered in
detail starting in Section 4.
The Linux* environment on the coprocessor utilizes BusyBox* to provide a number of Linux*
utilities. These utilities may have limited functionality when compared to similar tools provided
with the host Linux* distribution. For more information regarding BusyBox*, see the link
http://www.busybox.net/.
COI, MYO, and other Intel® MPSS components rely on the Symmetric Communication
Interface (SCIF) user mode API for PCIe communication services between the host processor,
Intel® Xeon Phi™ coprocessor, and installed InfiniBand* host channel adapters. SCIF delivers
very high bandwidth data transfers and sub-sec write latency to memory shared across PCIe,
while abstracting the details of communication over PCIe.
The COI, MYO, and SCIF libraries are also available for use by other applications. Section 2.4
lists additional documentation on these libraries.
Virtual Ethernet (VEth) drivers on the host and coprocessor implement a virtual Ethernet
transport between them. This supports a standard TCP/UDP/IP stack and standard tools, such
as ssh, scp, etc., across PCIe. A virtual console driver is built into mic.ko. Finally, mic.ko
directs power management of the installed coprocessors.
The virtio block device (virtblk) uses the Linux* virtio data transfer mechanism to implement a
block device on the Intel® Xeon Phi™ coprocessor. The device stores data on a specified
storage location on the host and can therefore be persistent across rebooting of the
coprocessor.
The Intel® True Scale and Mellanox* drivers enable direct data transfers between Intel® Xeon
Phi™ coprocessor memory and an installed Intel® True Scale or Mellanox* InfiniBand* HCA.
Intel® MPSS also includes an optional InfiniBand* over SCIF (ibscif) driver which emulates an
InfiniBand* HCA to the higher levels of the OFED stack. This driver uses SCIF to provide high
BW, low latency communication between multiple Intel® Xeon Phi™ coprocessors in an Intel®
Xeon™ host platform, for example between MPI ranks on separate coprocessors.
An mpssd daemon runs on the host, and directs the initialization and booting of the Intel®
Xeon Phi™ coprocessors based on a set of configuration files. The mpssd daemon is started
and stopped with the Linux* mpss service, and instructs the coprocessors to boot or
shutdown. In the event that the coprocessor’s OS crashes, mpssd will reboot the coprocessor
micrasd is an application that runs on the Host to handle and log hardware errors reported by
Intel® Xeon Phi™ coprocessors. It is normally controlled through the micras service. Refer to
Appendix C.2.7 for additional information.
micctrl is a utility with which the user can control (boot, shutdown, reset) each of the installed
Intel® Xeon Phi™ coprocessors. micctrl also offers numerous options to simplify the process of
configuring each coprocessor. Configuration tasks can include controlling user access to
coprocessors, adding coprocessors to a TCP/IP network, and installing software into the
software stack-supplied default coprocessor file system (the default initramfs). A substantial
portion of this document is devoted to creating an optimized configuration, which can be
accomplished by use of micctrl and by directly editing configuration files. micctrl is discussed
at length throughout this document. micctrl commands are described in detail in Appendix B.
The same information is available online from micctrl help:
[host]$ micctrl -h
micinfo and mpssinfo display information about the Intel® Xeon Phi™ coprocessors installed in
the system as well as information about the host operating system and Intel® MPSS host
driver. mpssinfo is a POSIX compliant version of micinfo. For detailed information, refer to the
micinfo or mpssinfo man page.
micflash and mpssflash are used to update a coprocessor’s flash image, save a coprocessor’s
flash image to a file on the host, and to display the current flash version that is loaded on a
coprocessor. mpssflash is a POSIX-compliant version of micflash. For detailed information
about micflash or mpssflash, refer to their man pages:
The micsmc tool is used to monitor Intel® Xeon Phi™ coprocessor statistics such as core
utilization, temperature, memory usage, power usage statistics, and error logs. micsmc can
function in two modes: GUI mode and command-line (CLI) mode. GUI mode provides real-
time monitoring of all detected coprocessors installed in the system. The CLI mode produces a
snap-shot view of the status, which allows CLI mode to be used in cluster scripting
applications. For detailed information about micsmc, refer to its man page:
The miccheck utility executes a suite of diagnostic tests that verify the configuration and
current status of the Intel® Xeon Phi™ coprocessor software stack. For detailed information
about miccheck, refer to its man page:
The micnativeloadex utility copies an Intel® Xeon Phi™ coprocessor native binary to a specified
coprocessor and executes it. Refer to Appendix E for additional information.
Reliability Monitor, is an optional service that runs on the head node of a cluster, and monitors
the health of MIC based compute nodes in the cluster.
The coprocessor Performance Workloads package can be used to evaluate the performance of
an Intel® Xeon Phi™ coprocessor based installation.
An optional Ganglia support package to enable Ganglia based monitoring of Intel® Xeon Phi™
coprocessors, is also included. (Ganglia is an open source cluster monitoring system).
Figure 6 depicts a host, on the left, with two Intel® Xeon Phi™ coprocessors. A private network
was configured between the host and each coprocessor. Notice that mic0 and mic1 are on
separate subnets.
This network configuration is established by default when micctrl --initdefaults is called for the
first time. This configuration is sufficient for Intel® C++ and FORTRAN compiler pragma-based
offload computation on a standalone (non-clustered) host platform and other program models
where a coprocessor only needs a network connection to the host.
Some distributed applications running on Intel® Xeon Phi™ coprocessors on a single node
need to communicate between coprocessors, and perhaps with the host. An internal bridge
allows for the connection of one or more coprocessors within a single host system as a
subnetwork. In this configuration, each coprocessor can communicate with the host and with
other coprocessors in the platform. Figure 7 shows an example of an internal bridge
configuration.
Host mic0
mic0
mic0
172.31.1.1
br0 172.31.1.254
eth0
mic1
mic1
172.31.1.2 mic1
Such a network configuration could, for example, be used to support communication between
the ranks of an MPI application that is distributed across the Intel® Xeon Phi™ coprocessors
and host. (However, use of the IBSCIF virtual InfiniBand* HCA driver will likely provide better
performance.)
The additional considerations and steps to configure this network topology are described in
Section 5.
The external bridge configuration bridges Intel® Xeon Phi™ coprocessors to an external
network. This is the typical configuration required when the coprocessors are deployed in a
cluster to support remote communication among them and/or Xeon™ processors across
different compute nodes.
Figure 8 depicts a cluster in which the Intel® Xeon Phi™ coprocessors on each host node are
bridged to the external network. The IP addresses in such a configuration can be assigned
statically by the system administrator or by a DHCP server on the network, but must generally
be on the same subnet.
InfiniBand* based networking is not shown in this figure. InfiniBand* based networking will
usually provide significantly higher bandwidth than the IP networking supported by the Intel®
MPSS Virtual Ethernet driver. Many clusters use Ethernet* networking for low bandwidth
communication such as command and control and use InfiniBand* networking for high
bandwidth communication as application data transfer.
To prepare for configuring this network topology, you should ensure that you have provided a
large enough IP address space to accommodate the nodes of the externally bridged networks.
These topics and steps to configure this network topology are described in Section 5.
The following documentation specific to Intel® MPSS and Intel® Xeon Phi™ coprocessors is
listed below.
https://www-ssl.intel.com/content/www/us/en/processors/xeon/xeon-phi-coprocessor-
specification-update.html
https://www-ssl.intel.com/content/www/us/en/processors/xeon/xeon-phi-coprocessor-safety-
compliance-guide.html
https://www-ssl.intel.com/content/www/us/en/processors/xeon/xeon-phi-coprocessor-
datasheet.html
https://www-ssl.intel.com/content/www/us/en/processors/xeon/xeon-phi-coprocessor-
software-users-guide.html
https://www-ssl.intel.com/content/www/us/en/processors/xeon/xeon-phi-coprocessor-
system-software-developers-guide.html
http://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-developers-quick-start-
guide
http://software.intel.com/sites/default/files/forum/278102/327364001en.pdf
http://software.intel.com/en-us/articles/which-systems-support-the-intel-xeon-phi-
coprocessor
https://software.intel.com/sites/default/files/managed/72/db/mpss-performance-guide.pdf
Caution: It is strongly recommended that you read through this section before actually proceeding with
installation to ensure that all required components and facilities are available. It is also
strongly recommended that these installation steps be performed in the order in which they
are presented.
3.1.2.1 Enable Large Base Address Registers (BAR) Support in the Host
Platform BIOS
BIOS and OS support for large (8GB+) Memory Mapped I/O Base Address Registers (MMIO
BAR's) above the 4GB address limit must be enabled.
In some instances, motherboard BIOS implementations have this feature set to disabled and it
must be enabled manually.
Contact your platform and/or BIOS vendor to determine whether changing this setting applies
for the platform being used.
[host]$ uname -r
Section 3.3.3 and Section 3.6.2 discuss rebuilding the Intel® MPSS host drivers and Intel®
MPSS OFED drivers in the event that the host kernel has been patched/upgraded.
Note: RHEL* 6.5 and SLES* 11 SP3 are deprecated and will not be supported in the next major
release of the Intel® MPSS.
The use of sudo to acquire root privileges should be done carefully because there may be
subtle and undesirable side effects to its use. The sudo command might not retain the non-
root environment of the caller. This could, for example, result in use of a different PATH
environment variable than was expected, resulting in execution of the wrong code.
When su is used to become root, the non-root environment is mostly retained. HOME, SHELL,
USER, and LOGNAME are reset unless the -m switch is given. See the su man page for details.
Most Intel® Xeon Phi™ coprocessor configuration tasks can be done indirectly from the host,
as will be discussed later. However, some administrators may prefer to use SSH to log on to a
coprocessor to perform such configuration tasks directly or verify that a coprocessor’s
configuration is correct.
SSH access is generally not needed by users who will develop and/or execute offload
applications using the Intel® C++ and FORTRAN offload pragmas.
The Intel® Xeon Phi™ coprocessor Linux* OS supports network access using SSH keys or
password authentication; this requires that valid credentials exist on the coprocessor.
Depending on parameterization, the micctrl --initidefaults command, when performed
following base software stack installation (Section 3.3.3.3), creates a user account on each
coprocessor’s file system, for selected users and root in the host /etc/passwd file. In addition,
for each such user, if SSH key files are found in the user's ".ssh" directory, those keys may
also be propagated to the Intel® Xeon Phi™ coprocessor's file system. This allows SSH access
to the coprocessor without the need to enter a password.
Each user, including root, that will need SSH access should execute the ssh-keygen command:
[host]$ ssh-keygen
Note: It is recommended to use default key names and not to provide key passphrases.
where the SCRIPT parameter specifies a System V init script, and the supported values of
COMMAND depend on the invoked script. Systemd uses the systemctl command, which has
the form:
The systemctl command is also used on RHEL* 7 and SUSE* 12 instead of the chkconfig
command. Init commands in this document are in System V format. On host systems with
RHEL* 7 or SUSE* 12, those commands should be converted to system format as follows:
becomes:
In the remainder of this document, service and systemctl are prepended with a superscript
that links back to this section:
1
When running Intel® MPSS on RHEL* 7.0, please replace:
service mpss unload
with
systemctl stop mpss
modprobe -r mic
For all other service commands, replace:
service <daemon> <action>
with
systemctl <action> <daemon>
Intel® Manycore Platform Software Stack (Intel® MPSS)
User's Guide December 2015
34
Intel® Xeon Phi™ Coprocessor Installation Process
3.1.8.2 SLES* 12
The wicked network configuration framework should be enabled by default on SLES* 12. To
verify whether it is running execute:
For proper functioning of Intel® Xeon Phi™ coprocessors networking with wicked, the nanny
daemon should also be enabled. The recommended procedure is to create and/or edit the
/etc/wicked/local.xml file to include a line that enables the nanny daemon, for example:
<config>
<use-nanny>true</use-nanny>
</config>
After any change in network configuration, the wicked daemon should be restarted for
configuration changes to take effect:
When installing Intel® Xeon Phi™ coprocessor cards into a host platform, some consideration
should be given to the slot or slots where the cards are installed. The options depend on if a
coprocessor is to communicate with another PCIe device, such as another coprocessor or an
InfiniBand* HCA. We refer to such communication between PCIe devices as peer-to-peer
(P2P).
An important factor is that when PCIe devices are plugged into I/O hubs of different CPU
sockets, communication between those devices will be across the Quick Path interconnect. The
bandwidth of this communication will typically be lower than communication bandwidth when
the two devices are plugged into the same I/O hub. Therefore, if you expect P2P data
transfers between two PCIe devices, it is recommended to setup nodes with the above
considerations in mind. Contact your host platform OEM or refer to motherboard
documentation for information on bus/processor locality.
Figure 10: Two Intel® Xeon Phi™ coprocessors Installed in the Same IO Hub
Figure 11: Intel(R) Xeon Phi(TM) and InfiniBand* HCA sharing an I/O hub
By extension, when there are equal numbers of Intel® Xeon Phi™ coprocessors and
InfiniBand* HCAs, we suggest installing the coprocessor and HCA pair into an I/O hub, as the
example in Figure 12 shows.
For other ratios of Intel® Xeon Phi™ coprocessors and IB HCAs, consideration should be given
to how the devices are expected to inter-communicate, remembering the relative
communication BWs between the various PCIe slots in a platform.
To verify that the BIOS/OS is able to assign all the required resources to the Intel® Xeon Phi™
coprocessor, execute the following, noting that the earlier command reported that the
coprocessor is on bus:slot number 08:00.
The output shows that both BAR0 (region 0) and BAR1 (region 4) have valid assigned values.
If the expected number of coprocessors is not reported, it may help to reseat them before
continuing. If the coprocessors are detected, but no resources have been assigned, check the
system BIOS for support of large BARs (see Section 3.1.4)
As described in the Notational Conventions (Section 1.3.2.1), we refer to the directory into
which files are placed as $MPSS361.
[host]$ cd $MPSS361X
[host]# ./uninstall.sh
To determine if your host kernel has been updated, you can execute:
[host]$ uname -r
from the host console and compare the returned value to the default versions listed in Table 2.
If your host kernel is not updated, then proceed to Section 3.3.3.3. Otherwise it may be
required to rebuild Intel® MPSS drivers as follows for proper execution:
Note: If using InfiniBand* as an interconnect, you may also need to recompile the OFED drivers; this
is covered in Section 3.6.2.
[host]$ cp $HOME/rpmbuild/RPMS/x86_64/mpss-modules*`uname \
-r`*.rpm ../modules
[host]$ cd $MPSS361/src/
[host]# rpmbuild --rebuild mpss-modules*.src.rpm
[host]$ cp /usr/src/packages/RPMS/x86_64/mpss-modules*`uname \
-r`*.rpm ../modules
[host]$ cd $MPSS361
[host]$ cp ./modules/*`uname -r`*.rpm .
Note: Intel® MPSS packages are not GPG signed. If local package GPG check (localpkg_gpgcheck) is
enabled in yum.conf, or if RHEL* 6.0 gpgcheck is enabled, the --nogpgcheck option must be
used:
3.3.4 Update Intel® Xeon Phi™ Coprocessor Flash & SMC Firmware
Caution: After the base software stack is installed, it is strongly recommended to update the Intel®
Xeon Phi™ coprocessor flash and SMC firmware to the version distributed with the software
stack installation. The $MPSS361/docs/readme.txt file lists the versions of the Flash and
SMC firmware in the distribution.
Running Intel® MPSS with incorrect Flash or SMC firmware versions is not supported and
may lead to erratic behavior.
Note: These steps will not work if the flash files (ending in .rom.smc) are moved to a location other
than the default install path.
[host]#micflash –getversion
Note: The current flash version must be >= 375. If not, contact your Intel ® support representative.
[host]$ micctrl -s
Note: The micctrl utility is installed in /usr/sbin, which in SLES* is not by default included in user's
PATH variable. Modify your PATH variable or provide an absolute path to micctrl
(/usr/sbin/micctrl) in order to execute above command.
If the status for all of the coprocessors shows 'ready', go to step 2; otherwise, set the
coprocessor(s) to a 'ready' state:
2. Determine the stepping and board SKU of each coprocessor to be updated. The micinfo
utility can be used if this information is not already known. For example:
Note: Some data is not available while the coprocessor is not booted.
This will update all installed coprocessors. To update coprocessor micN, execute:
For example:
b. Otherwise, execute:
This will update all installed coprocessors. To update coprocessor micN, execute:
For Example:
4. Reboot the host system for all flash and SMC changes to take effect. Be sure to wait for
the flash update to complete before rebooting.
the system, where N is an integer number (0, 1, 2, … , 255) that identifies a coprocessor.
Each parameter in a coprocessor specific file takes precedence in configuring the
corresponding coprocessor, overriding default.conf if the same parameter is in that file.
The micctrl --initdefaults command creates these files if they do not already exist, and
populates them with default parameter values. In addition, if a previous configuration file
exists, but some parameter is not configured, this command will add a default configuration
value.
The micctrl --initdefaults command should be performed after the initial Intel® MPSS
installation and after each subsequent installation of a new software stack release:
The micctrl --initdefaults command will not change existing configuration settings, with the
following exception: The Intel® MPSS configuration file format is versioned, with the version
indicated by a Version parameter in the configuration file. If a configuration already exists,
then micctrl --initdefaults will update the configuration format if necessary. The semantics of
the updated configuration should be invariant.
Some users switch between different versions of the software stack. When this is the case,
and because micctrl --initdefaults does not know how to downgrade a configuration from a
newer to an older format, it is recommended to make a copy of the configuration files before
calling micctrl --initdefaults.
The default configuration produced by the micctrl --initdefaults command is sufficient for
users who will be using the offload programming model on a workstation. You can view a
summary of the current configuration parameters with:
mic0:
=============================================================
Config Version: 1.1
ExtraCommandLine: highres=off
PowerManagment: cpufreq_on;corec6_off;pc3_on;pc6_off
MtuSize: 64512
MIC MAC: 4c:79:ba:15:00:1e
Host MAC: 4c:79:ba:15:00:1f
Cgroup:
Memory: Disabled
Console: hvc0
VerboseLogging: Disabled
CrashDump: /var/crash/mic 16GB
The micctrl tool can be used to modify the configuration, and it is also possible to modify the
configuration by directly editing the Intel® MPSS configuration files. Section 3.6.11.2 contains
an overview of the configuration process, while later sections discuss a variety of configuration
tasks.
Starting the mpss service launches the mpssd daemon, and also boots the installed Intel®
Xeon Phi™ coprocessors if the BootOnStart config option is set to enabled (default).
The following command configures the mpss service to start when the host OS boots:
This command disables the mpss service from starting when the host OS boots:
Note: On RHEL* 7 and SLES* 12, starting the mpss service (systemctl start mpss) on a system with
a large number of coprocessors can take longer than the default value of five minutes of the
TimeoutSec parameter in the /etc/systemd/system/mpss.service file. In this case it is
necessary to increase TimeoutSec to a larger value.
Appendix I provides troubleshooting advice in the event that problems are encountered during
installation.
[host]# ifconfig
eth0 <Output truncated>
mic0 Link encap:Ethernet HWaddr 4C:79:BA:12:12:8B
inet addr:172.31.1.254 Bcast:172.31.1.255
Mask:255.255.255.0
inet6 addr: fe80::4e79:baff:fe12:128b/64 Scope:Link
UP BROADCAST RUNNING MTU:64512 Metric:1
RX packets:94 errors:0 dropped:0 overruns:0 frame:0
TX packets:159 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11945 (11.6 Kb) TX bytes:17781 (17.3 Kb)
If the micN is not shown among network interfaces revisit Network Manager configuration in
Section 3.1.8.
At this point you should be able to SSH into a coprocessor. For example, to SSH into mic0:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
remove the mic0 RSA from the user’s known_hosts file, typically found in the $HOME/.ssh/
directory, and then try again.
Note: When running an ssh command in the background, it is preferable to use the -f option instead
of appending "&" to the command:
[host]$ miccheck
MicCheck 3.6.1-r1
Copyright 2013 Intel Corporation All Rights Reserved
Status: OK
Additionally, the micinfo tool provides information about the host and Intel® Xeon Phi™
coprocessor hardware and software. The following is example output from micinfo when
executed on a platform with a single coprocessor installed. Certain device information is only
available when executing micinfo with root privileges:
[host]# micinfo
System Info
HOST OS : Linux
OS Version : 2.6.32-431.17.1.el6.x86_64
Driver Version : 3.6.1
MPSS Version : 3.6.1
Host Physical Memory : 24541 MB
Version
Flash Version : 2.1.03.0386
SMC Firmware Version : 1.15.4830
SMC Boot Loader Version : 1.8.4326
Coprocessor OS Version : 2.6.38.8+mpss3.6.1
Device Serial Number : ADKC31101193
Board
Vendor ID : 0x8086
Device ID : 0x2250
Subsystem ID : 0x5804
Coprocessor Stepping ID : 2
PCIe Width : x16
PCIe Speed : 5 GT/s
PCIe Max payload size : 256 bytes
PCIe Max read req size : 4096 bytes
Coprocessor Model : 0x01
Coprocessor Model Ext : 0x00
Coprocessor Type : 0x00
Coprocessor Family : 0x0b
Coprocessor Family Ext : 0x00
Coprocessor Stepping : C0
Board SKU : C0QS-5110P
ECC Mode : Enabled
SMC HW Revision : Product 225W Passive CS
Cores
Total No of Active Cores : 60
Voltage : 972000 uV
Frequency : 1052631 kHz
Thermal
Fan Speed Control : N/A
Fan RPM : N/A
Fan PWM : N/A
Die Temp : 40 C
GDDR
GDDR Vendor : Elpida
GDDR Version : 0x1
GDDR Density : 2048 Mb
GDDR Size : 7936 MB
GDDR Technology : GDDR5
GDDR Speed : 5.000000 GT/s
GDDR Frequency : 2500000 kHz
GDDR Voltage : 1501000 uV
See the miccheck and micinfo man pages for additional information.
Shown below is a very simple example. The point of this exercise is to demonstrate the
simplicity with which code can be compiled and run on the Intel® Xeon Phi™ coprocessor. As
seen below, this is standard C code. In this example, the gcc cross compiler that is included in
the Intel® MPSS cross-compilation SDK is used. The gcc cross compiler is installed at
/opt/mpss/3.6.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux/k1om-mpss-linux-
gcc. Cross compiling using the SDK is described in detail in Section 8.1.
Next, copy the code to the file system on the coprocessor using scp:
This is a repeat of the previous example, but this time using Intel® C Compiler for compilation.
Note that you will need to install the Intel® Compiler suite to build this example (and the
follow-on example highlighting offload directives.) See Intel® C and C++ Compilers for details
on licensing and installation.
Notice that the Intel® C compiler (icc) is used with an additional flag (-mmic) to indicate that
the target architecture in this case is the Intel® Xeon Phi™ coprocessor.
Next, copy the code to the file system on the coprocessor using scp
This example demonstrates the use of offload directives to run code on the coprocessor.
To build it, use the Intel® C compiler, as before with -offload flag.
[host]$ ./hello_offload
hello_world from offloaded code running on the coprocessor
For users who will be developing and/or executing only Intel ® C++/FORTRAN offload directive
based programming, basic installation is now complete. You may, however, want to consult
Section 6 to learn more about user credentials.
Users who will be performing Native program execution on a standalone platform might also
wish to learn more about NFS mounting some or all of the coprocessor file system: see
Section 3.5.4 for a discussion on the tradeoffs of local vs. remote file system mounts. Building
and adding software to the coprocessor file system may also be of interest: see Sections 7 and
8.
Although Intel® MPSS supports an Internal Bridge configuration, in which the host and all
Intel® Xeon Phi™ coprocessors in the host are on a single network, the External Bridge
configuration is more relevant for a cluster environment. This configuration was briefly
introduced in Section 2.2.3.2.2.
Local cluster site administrators will want to adopt an IP address assignment pattern that is
amenable for their datacenter and local network configurations. To illustrate one example
scheme, the following highlights a scenario with two Xeon Phi™ coprocessors installed per
host. In this case, a simple IP ordering scheme is used to organize the host bridge interfaces
and endpoints within the same subnet such that the IP address of the coprocessors can be the
IP address of the host/bridge +1 and +2 respectively.
172.31.0.1 node0-eth0
172.31.0.2 node0-mic0
172.31.0.3 node0-mic1
172.31.0.4 node1-eth0
172.31.0.5 node1-mic0
172.31.0.6 node1-mic1
172.31.0.7 node2-eth0
:
:
A DHCP server can be configured to assign persistent static IP addresses to clients. This can
be done by directly editing DHCP server configuration files. Some cluster manager utilities (For
Instance: Warewulf) can also perform such DHCP assignments. Configuring the DHCP server
either indirectly through the cluster manager or by directly editing DHCP server configuration
files is beyond the scope of this document.
Note: You must manually add a gateway to the br0 config file.
Before you can change the network configuration, you must stop the mpss service:
Assuming the IP address distribution shown above, an external bridge, br0, on node0 can be
configured as:
micctrl does not slave the physical Ethernet endpoint, for example eth0, to the bridge. This
must be done by the administrator by editing the Ethernet configuration file(s). For example,
on RHEL*, the eth0 Ethernet configuration file, /etc/sysconfig/network-scripts/ifcfg-eth0,
should typically have the following contents:
DEVICE=eth0
NM_CONTROLLED=no
ONBOOT=yes
Intel® Manycore Platform Software Stack (Intel® MPSS)
December 2015 User's Guide
53
Intel® Xeon Phi™ Coprocessor Installation Process
BRIDGE=br0
MTU=1500
On SLES* host platforms, the physical port name must be added to the BRIDGE_PORTS entry
in the /etc/sysconfig/networks/ifcfg-br0 configuration file, for example:
Communication with Intel® Xeon Phi™ coprocessors from other nodes on the network should
now be possible.
The Intel® Xeon Phi™ coprocessor operating system includes a virtio block device (virtblk),
which uses the Linux* virtio data transfer mechanism to implement a block device. virtblk can
store data on the host in a regular file, Logical Volume Manager volume, or a designated
physical device. virtblk is expected to exhibit lower latency than NFS mounted exports from
the host.
One advantage of both NFS and virtblk file systems is persistence. That is, changes to virtblk
or NFS mounted files can persist after Intel® Xeon Phi™ coprocessors are shutdown, whereas
changes to files in coprocessor memory are lost unless steps are taken to capture those
changes.
Another advantage of NFS and virtblk file systems is capacity. Not only is the ram file system
limited by available Intel® Xeon Phi™ coprocessor memory, but allocating coprocessor
memory to the file system makes that memory unavailable to application processes executing
on the coprocessor.
Only NFS supports sharing of files among multiple devices. Sharing the same file to hold the
virtblk file system of more than one coprocessor is not supported by Intel® MPSS.
The following table summarizes the characteristics of the available file systems classes.
NFS mounting is discussed throughout Section 4. Configuring the virtio block device is
discussed in Section 9.6.
Portmapper
nfsd
mountd
lockd
statd
Of these, at least portmapper, nfsd and mountd must be accessible to the coprocessor’s
NFS client through the firewall to enable basic NFS operation. Access to the lockd and
statd ports is needed if file locking is required.
The ports for the portmapper and nfsd are statically assigned as follows:
The ports for the other services are normally dynamically assigned. For firewall considerations,
it may be desirable to statically assign ports to these services.
Consult documentation for your host operating system for instructions on static port
assignment, and for instructions on allowing access to the NFS services ports through the
firewall.
Similarly, the ports used by the Ganglia daemon on the host (see Appendix F.1.2) may need
to be exposed through the firewall.
Consult documentation for your host operating system for instructions on allowing access to
these ports.
This step assumes that IPoIB is correctly configured on the coprocessor. Please refer to
appropriate topic of the Intel® MPSS manuals for instructions on how to do this.
If you would like to make this configuration persistent across all coprocessor reboots you can
do the following on the host:
mkdir -p /var/mpss/micN/etc/modprobe.d \
After mpss service restart this configuration will be deployed to the Intel® Xeon Phi™
coprocessor.
mkdir -p /mnt/lustre \
or
If you like to make this mount point persistent across all coprocessor reboots you can do the
following:
mkdir -p /var/mpss/mic0/mnt/lustre
and then you can add this mount point to /etc/fstab for automatic mount.
Intel® Xeon Phi™ coprocessors can communicate with external compute nodes over high-
bandwidth InfiniBand* when a supported Intel® True Scale or Mellanox* InfiniBand* host
adapter is installed in the platform.
The section describes how to install the OFED components that support these capabilities.
The following installation processes assume that the mpss-3.6.1-linux.tar file was downloaded
and untarred as a step during Intel® MPSS installation. Specifically: the RPM files in
$MPSS361/ofed are needed during OFED installation.
Note: If the dapl package in the $MPSS361/ofed/ directory is newer than the one installed with
OFED on the host, it is required to update the host package.
Option 1:
The Offload computing model is characterized by MPI communication only between the host
processors in a cluster. In this model, Intel® Xeon Phi™ coprocessors are accessed exclusively
through the offload capabilities of products like the Intel® C, C++, and Fortran Compilers, and
the Intel® Math Kernel Library (MKL). This mode of operation does not require CCL, and
therefore the OFED version in a Red Hat* or SUSE* distribution can be used.
Option 2:
If MPI ranks are to be executed on Intel® Xeon Phi™ coprocessors, and if it is required that
these ranks communicate directly with an InfiniBand* adapter, then the following installation
should be performed. The ibscif virtual adapter will provide the best host-to-coprocessor and
coprocessor-to-coprocessor transfer performance on systems without an InfiniBand* adapter.
Note: OFED 1.5.4.1, OFED 3.5-2 MIC and Mellanox* OFED prior to version 2.4 are deprecated and
will no longer be supported in the next major release of Intel® MPSS.
Several different OFED distributions are supported. Select one which matches hardware and
software requirements, and install it using instructions from the accompanying section.
Each OFED distribution supports a subset of the Intel® MPSS supported OS distros; most
support SLES* 11 SP3 and RHEL* 6.2/3/4/5/6. If using RHEL* 7 or SLES* 12, proceed to
Section 3.6.5, 3.6.6 or 3.6.7. Refer to the respective OFED’s release notes for the exact
supported distros.
When installing a new OFED distribution, it is recommended to first uninstall the currently
installed distribution. Consult the current distribution’s documentation for instructions.
Both Red Hat* and SUSE* release minor kernel version updates. If an update of the kernel
occurs, this will create versioning incompatibilities with the OFED kernel modules, preventing
these drivers from loading. To determine if your host kernel has been updated execute:
[host]$ uname -r
and compare the returned value to the default versions listed in Table 2. If your host kernel
has not been updated, then proceed to install one of the OFED distributions. Otherwise it may
be required to rebuild the Intel® MPSS OFED drivers as described in the next subsections for
proper execution.
Note: OFED installation may overlay some of the RDMA/InfiniBand* components in your distribution.
As a result the Linux* kernel will not load kernel mode software that was built against the Red
Hat* or SUSE* RDMA/InfiniBand* software in your distribution. This may require that you
rebuild such software against the installed OFED, or obtain a version of the software that was
so built. For example, an implementation of the Lustre* file system that was built against a
Red Hat* or SUSE* distribution will not be loaded by the Linux* kernel, and must be rebuilt
against the installed OFED. Note that user mode applications will not need to be rebuilt due to
this installation.
[host]$ cp $HOME/rpmbuild/RPMS/x86_64/ofed-driver*\
`uname -r`*.rpm ../ofed/modules
[host]$ cd $MPSS361/src/
[host]$ rpmbuild --rebuild ofed-driver-*.src.rpm
[host]$ cp /usr/src/packages/RPMS/x86_64/ofed-driver*\
`uname -r`*.rpm ../ofed/modules
OFED+ supports all Intel® MPSS-supported versions of RHEL* 6 (except 6.7) and SLES* 11
SP3.
Note: Installing OFED+ support will replace the OFED components in your standard distribution. This
section describes the steps to install Intel® True Scale Fabric Host Channel Adapter Drivers
and Software stack (OFED+), an enhanced implementation of OFED that supports Intel ® True
Scale Fabric Host Channel Adapters (HCA), and enables communication between an Intel ®
Xeon Phi™ coprocessor and an Intel® True Scale Fabric HCA. This installation may overlay
Note: This section describes the steps to install Intel® True Scale Fabric Host Channel Adapter
Drivers and Software stack (OFED+), an enhanced implementation of OFED that supports
PSM-Direct. PSM-Direct enables direct communication between an Intel ® Xeon Phi™
coprocessor and an Intel® True Scale Fabric HCA, by default—no extra install steps are
required.
User mode applications will not need to be rebuilt due to this installation.
The following installation should be performed on any compute node in which an Intel ® True
Scale Fabric HCA is installed.
After a successful installation, an ibv_devices command issued on the host will show both qib0
and scif_0, while an ibv_devices command issued on the Intel® Xeon Phi™ coprocessor will
show only scif_0.
Note: When running MPI in Symmetric mode with more than 16 processes per node,
PSM_RANKS_PER_CONTEXT=<value> needs to be specified (the value can be 2, 3 or 4; the
default value is 1) so that the available 16 contexts can be shared by the ranks.
Intel® True Scale Fabric Host Channel Adapter Drivers and Software (OFED+), including the
PSM library, is available as a free download from http://downloadcenter.intel.com. It contains
OFED software bug fixes and enhanced performance.
1) Go to http://downloadcenter.intel.com
4) Select the version of Intel® True Scale Fabric Host Channel Adapter Host Drivers and
Software that supports your operating system. Details of the operating system can be
found by clicking on a version and then clicking the Release Notes (pdf) link.
5) Download the appropriate IB-Basic file as well as the related publications file.
7) After rebooting the system as recommended by the previous install step, stop the openibd
service and ensure that openibd does not start automatically after every reboot:
8) If using OFED+ 7.2 version, ensure kernel-ib-devel, kernel-ib, and dapl packages are not
installed.
If using OFED+ version 7.3 or later, ensure compat-rdma-devel, compat-rdma and dapl
packages are not installed.
9) If using yum to install Intel® MPSS, it is also necessary to remove infinipath-libs and
infinipath-devel prior to installing the software stack:
[host]$ cd $MPSS361
[host]$ cp ofed/modules/*`uname -r`*.rpm ofed
Red Hat* Enterprise Linux*
11) Install required PSM (Performance Scaled Messaging ) libraries and drivers as follows:
Red Hat* Enterprise Linux*
https://www.openfabrics.org/downloads/OFED/ofed-1.5.4/OFED-1.5.4.1.tgz
3) Install the OFED stack as instructed in OFED README.txt, with a few exceptions regarding
installed packages.
Option 4 (Customize)
[host]$ cd $MPSS361
[host]$ cp ofed/modules/*`uname –r`*.rpm ofed
[host]# rpm –Uvh ofed/*.rpm
http://www.openfabrics.org/downloads/ofed-mic/ofed-3.5-2-mic/
http://downloads.openfabrics.org/OFED/ofed-3.12-1/
https://www.openfabrics.org/downloads/OFED/ofed-3.18/
https://www.openfabrics.org/downloads/OFED/ofed-3.18-1/
Note: If your host OS kernel version is older than v3.10 it is required to modify the
/etc/modprobe.d/ibscif.conf file so that it contains a line “options ibscif new_ib_type=1”.
http://www.mellanox.com/page/products_dyn?product_family=26
4) From the src/ folder of the Intel® MPSS installation, compile dapl, libibscif, and ofed-
driver source RPMs:
[host]$ cd $MPSS361/src
[host]$ rpmbuild –-rebuild -–define “MOFED 1” \
dapl*.src.rpm libibscif*.src.rpm \
ofed-driver*.src.rpm
If the service is not running, refer to Section 3.3.6 for instructions on starting it.
Intel® Manycore Platform Software Stack (Intel® MPSS)
December 2015 User's Guide
63
Intel® Xeon Phi™ Coprocessor Installation Process
2) If using Intel® True Scale Fabric HCAs, or using Mellanox* InfiniBand* adapters and/or the
ibscif virtual adapter, start the IB and HCA services by doing the following:
If using Intel® True Scale Fabric HCAs and Intel® True Scale Fabric Switches, it is
recommended to use the Intel® Fabric Manager, rather than the opensm. Visit
http://www.intel.com/infiniband for information on Intel’s fabric management and
software tools, downloads and support contacts.
4) If using CCL-Direct and IPoIB with Mellanox* InfiniBand* adapters, you can enable the
IPoIB module to be loaded as part of the ofed-mic service (see Section 5.3) and configure
the IP Address and Netmask by editing the /etc/mpss/ipoib.conf file which contains
instructions on how to make these changes. See the example ipoib.conf script in
Section 5.3.
5) If using Intel® True Scale Fabric HCAs, or using Mellanox* InfiniBand* adapters and/or the
ibscif virtual adapter, then start the Intel® Xeon Phi™ coprocessor specific OFED service on
the host using:
6) The use of ccl-proxy service is applicable only if using Mellanox* InfiniBand* adapters. To
start the ccl-proxy service (see configuration in: /etc/mpxyd.conf):
The use of PSM-Direct which is applicable only if using Intel® True Scale Fabric HCAs, is
enabled by default and does not require starting any services.
To restart all OFED components: follow instructions for stopping then starting.
2. ibv_devices and ibv_devinfo will report whether the device and ports are up or down. On
Mellanox* OFED installations ibv_devinfo will not show the scif device, but ibv_devices
should list it.
3. ofed_info reports the OFED version that is installed including installed packages.
The following are examples of the output generated by these commands when OFED is
successfully installed. (The output from ofed_info has been truncated.):
rdma_ucm
ib_sdp
rdma_cm
ib_addr
ib_ipoib
mlx4_core
mlx4_ib
mlx4_en
ib_mthca
ib_uverbs
ib_umad
ib_sa
ib_cm
ib_mad
ib_core
iw_cxgb3
iw_cxgb4
iw_nes
ib_qib
[host]$ ibv_devices
[host]# ibv_devinfo
hca_id: scif0
transport: iWARP (1)
fw_ver: 0.0.1
node_guid: 4c79:baff:fe18:168b
sys_image_guid: 4c79:baff:fe18:168b
vendor_id: 0x8086
vendor_part_id: 0
hw_ver: 0x1
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 4096 (5)
sm_lid: 1
port_lid: 1000
port_lmc: 0x00
link_layer: InfiniBand
hca_id: qib0
transport: InfiniBand (0)
fw_ver: 0.0.0
node_guid: 0011:7500:0079:1882
sys_image_guid: 0011:7500:0079:1882
vendor_id: 0x1175
vendor_part_id: 29474
hw_ver: 0x2
board_id: InfiniPath_QLE7342
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 2048 (4)
sm_lid: 14
port_lid: 16
port_lmc: 0x00
link_layer: InfiniBand
OFED-3.5-2:
[host]$ ofed_info
OFED-3.5-2:
compat-rdma:
git://git.openfabrics.org/compat-rdma/compat-rdma.git ofed_3_5
commit a5bbb7655356750939d8864091b1316cfd7dcc10
dapl:
http://www.openfabrics.org/downloads/dapl/dapl-2.0.39.tar.gz
ib-bonding:
http://www.openfabrics.org/downloads/ib-bonding/ib-bonding-0.9.0-
43.src.rpm
ibacm:
http://www.openfabrics.org/downloads/rdmacm/ibacm-1.0.8.tar.gz
ibsim:
http://www.openfabrics.org/downloads/ibsim/ibsim-0.5-
0.1.g327c3d8.tar.gz
ibutils:
http://www.openfabrics.org/downloads/ibutils/ibutils-1.5.7-
0.1.g05a9d1a.tar.gz
hca_id: scif0
transport: SCIF (2)
fw_ver: 0.0.1
node_guid: 4c79:baff:fe18:16a0
sys_image_guid: 4c79:baff:fe18:16a0
vendor_id: 0x8086
vendor_part_id: 0
hw_ver: 0x1
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 4096 (5)
sm_lid: 1
port_lid: 1001
port_lmc: 0x00
link_layer: SCIF
[mic0]# ibv_devinfo
hca_id: mlx4_0
transport: InfiniBand (0)
fw_ver: 2.30.8000
node_guid: 0002:c903:003d:5890
sys_image_guid: 0002:c903:003d:5893
vendor_id: 0x02c9
vendor_part_id: 4099
Intel® Manycore Platform Software Stack (Intel® MPSS)
December 2015 User's Guide
67
Intel® Xeon Phi™ Coprocessor Installation Process
hw_ver: 0x0
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 4096 (5)
sm_lid: 6
port_lid: 8
port_lmc: 0x00
link_layer: InfiniBand
hca_id: scif0
transport: SCIF (2)
fw_ver: 0.0.1
node_guid: 4c79:baff:fe16:23ac
sys_image_guid: 4c79:baff:fe16:23ac
vendor_id: 0x8086
vendor_part_id: 0
hw_ver: 0x1
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 4096 (5)
sm_lid: 1
port_lid: 1001
port_lmc: 0x00
link_layer: SCIF
Refer to the Intel® MPI Library page for details on licensing and installing the Intel® MPI
Library on the hosts and coprocessors. IMB-IMP1 is included in the Intel® MPI distribution.
The following syntax can be used on a multinode configuration in which either Intel ® True
Scale or Mellanox* InfiniBand* HCAs are installed. The mpiexec.hydra process manager will
attempt to use the Intel® True Scale supported tmi (tag matching) fabric, but will failover to
the Mellanox*-supported dapl fabric if the tmi fabric fails.
To run MPI applications using Intel MPI over tmi2 fabric, the tmi.conf file should be copied to
the Intel® Xeon Phi™ coprocessor using following procedure:
2
Intel MPI natively supports PSM using Tag Matching Interface (TMI)
Intel® Manycore Platform Software Stack (Intel® MPSS)
User's Guide December 2015
68
Intel® Xeon Phi™ Coprocessor Installation Process
Define the I_MPI_ROOT environment variable, and establish other environment settings for
the Intel MPI Library:
Execute the alltoall component of the MPI test. In this example, the test program is run on
two Intel® Xeon nodes (node01 and node02) and two Intel® Xeon Phi™ coprocessor nodes
(node01-mic0 and node02-mic0). In this example, tmi is not available so fabric selection fails
over to dapl.
# /opt/intel/impi/5.0.0.028/intel64/bin/IMB-MPI1 alltoall
# Alltoall
#----------------------------------------------------------------
# Benchmarking Alltoall
# #processes = 2
# ( 2 additional processes waiting in MPI_Barrier)
#----------------------------------------------------------------
#bytes #repetitions t_min[usec] t_max[usec] t_avg[usec]
0 1000 <remainder of output truncated>
The initial file system and kernel command line can be configured by modifying various Intel®
MPSS specific files and certain host configuration files. These files can be edited directly or
modified using the micctrl utility. Configuration of other software stack components, such as
the host driver, is described in later sections of this document.
Section 3.3.4 briefly discussed some basic configuration tasks. In this section we present
coprocessor configuration in more detail: which files typically need modification, different
approaches and tools to aid configuration, and what goes on “under the hood” as a result of
setting configuration parameters.
Configuration tasks range from specifying the location of the Intel® Xeon Phi™ coprocessor
Linux* kernel in the host’s file system, to managing user accounts on the coprocessor and
configuring network characteristics. Configuration also includes installing packages into the file
system. That topic is covered in Section 7.
The micctrl utility is a multi-purpose tool that provides two classes of functionality:
Coprocessor state control – boot, shutdown and reset of attached Intel® Xeon Phi™
coprocessors
Configuration – Some micctrl configuration commands modify parameters in Intel® MPSS-
specific configuration files. Other micctrl commands process those configuration files to
generate standard Linux* configuration files that replace corresponding ones in the
default file system. Still other micctrl commands modify standard configuration files on
the host. The files can also be edited directly.
We refer to the use of micctrl as assisted configuration and control, or just assisted
configuration, and discuss it in Section 4.1
Alternatively, an Intel® Xeon Phi™ coprocessor can also be controlled through the
coprocessor’s sysfs nodes. Configuration can be performed by directly editing or otherwise
modifying the initial file system image while it is stored on the host or on a coprocessor, and
by directly composing a coprocessor Linux* kernel command line. Similarly, host configuration
files can be edited to complete networking and similar configuration requirements. We call this
manual configuration and control, or just manual control, and discuss it in Section 4.2.
1. Call micctrl --initdefaults after each Intel® MPSS installation to create and/or upgrade
a set of configuration files specific for the software stack.
For simple configuration tasks, a basic understanding of the usage of micctrl configuration
commands may be sufficient; the micctrl commands are described in detail in Appendix B. For
more complex configurations, a deeper understanding of the overall assisted configuration
process can be very helpful.
2. There is a micN.conf file for each coprocessor in the system. Each parameter in this
file takes precedence in configuring the corresponding coprocessor, overriding
default.conf if the same parameter is in that file. You can think of these as “meta-
configuration” files in that they guide the completion of the configuration process.
Each of these files contains a list of configuration parameters and their arguments. Each
parameter must be on a single line. Comments begin with the ‘#’ character and terminate at
the first Newline/Carriage return. There are several Intel® Xeon Phi™ coprocessor
configuration parameter categories:
For example, here is a portion of the contents of default.conf when initially created:
Cgroup memory=disabled
In this fragment, BootOnStart configures the boot process, RootDevice defines where the
coprocessor file system lives on the host before it is provided to the coprocessor kernel, and
PowerManagement and Cgroup configure the boot command line.
Lines that micctrl adds to /etc/hosts are appended by the comment “#Generated-by-micctrl”.
We refer to these hierarchies, collectively, as overlay sets or just overlays. There are several
types of overlay sets.
The configuration files described previously include parameters that point to the various
overlay sets described below. Because there can be multiple sets of the software stack
configuration files, there can be multiple unique overlay sets.
The overlay process begins with the Base file system. The Base configuration file parameter:
specifies the file system to be used. <type> can be CPIO to indicate a compressed CPIO
archive at <location>, or DIR to indicate an expanded file system hierarchy rooted at
<location>. By default, this parameter is in /etc/mpss/micN.conf and set to:
The Base parameter can be modified using the micctrl --base command:
or by directly editing Intel® MPSS configuration files. See Appendix B.4.4.1 for details.
The common overlay set, by default rooted at /var/mpss/common, can be populated with files
that will overlay the file system of all coprocessors. For example, if administrator creates the
file /var/mpss/common/etc/foo, it will overlay /etc/foo in the file system of each coprocessor.
CommonDir <commondir>
is typically found in the default.conf configuration file, and specifies the common overlay set,
where <commondir> is the root of the overlay hierarchy. By default, this parameter is set to:
CommonDir /var/mpss/common
No files are created in this directory by default. See Appendix A.4.2 for details.
Overlay parameters can be created or modified using the micctrl --commondir command:
or by directly editing Intel® MPSS configuration files. See Appendix B.4.4.3 for details.
micctrl --initdefaults creates and populates an overlay set of files for each installed
coprocessor. However, if a file already exists, it is not changed. By default, these overlays are
rooted at /var/mpss/micN. The per-processor overlay set includes the following files:
/etc
/etc/fstab
/etc/group
/etc/hostname
/etc/hosts
/etc/localtime
/etc/nnswitch.conf
/etc/passwd
/etc/resolv.conf
/etc/shadow
/etc/init.d/
/etc/network/
/etc/network/interfaces
/etc/pam.d/
/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-session
/etc/ssh/
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
/etc/ssh/ssh_host_key
/etc/ssh/ssh_host_key.pub
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/rc1.d/
/etc/rc5.d
/home
/home/micuser
/home/micuser/.profile
/home/micuser/.ssh
/home/micuser/.ssh/id_dsa
/home/micuser/.ssh/id_dsa.pub
/home/micuser/.ssh/id_rsa
/home/micuser/.ssh/id_rsa.pub
/home/micuser/.ssh/authorized_keys
/root
/root/.profile
/root/.ssh
/root/.ssh/id_dsa
/root/.ssh/id_dsa.pub
/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
/root/.ssh/authorized_keys
(The .ssh key files are created depending on which key files the user or root has created.)
Thus, for each of the above files, there is a corresponding file rooted at /var/mpss/micN. For
example, micctrl --initdefaults creates and initializes the file /var/mpss/mic0/etc/fstab, which,
at boot time, will replace /etc/fstab in the file system of coprocessor mic0.
MicDir <micdir>
specifies the coprocessor specific overlay set for the corresponding coprocessor, where
<micdir> is the root of the overlay hierarchy. By default, this parameter is set to:
MicDir /var/mpss/micN
Micdir parameters can be created or modified using the micctrl --micdir command:
or by directly editing Intel® MPSS configuration files. See Appendix B.4.4.3 for details.
Arbitrary sets of files can be defined by the user to overlay corresponding files in the file
systems of one or more coprocessor. The Intel® MPSS configuration file Overlay parameter
describes a single such overlay set:
The <Simple,File,RPM> type parameter determines how the contents of the <source> and
<target> are interpreted. No Overlay parameters are created by default. See Appendix A.4.2
for details.
Overlay parameters can be created or modified using the micctrl --overlay command or by
directly editing Intel® MPSS configuration files:
A default.conf or micN.conf configuration file can have multiple overlay parameters. See
Appendix A.4.2 for details.
The RPM overlay type is a special case that identifies RPM based packages that are to be
installed into one or more coprocessor file systems at boot time. See Section 7.2.1.1 and
Appendix B.4.4.5 for details. The mpss-3.6.1-k1om.tar file is comprised of over 1900 RPM files
that were built for installation into the Intel® Xeon Phi™ coprocessor file system.
Parsing this command will cause the coprocessor to attempt to install all RPMs from the mpss-
3.6.1-k1om.tar file. In general, care should be taken to install only RPMs that are actually
needed.
1) If the Base file system is in the form of a compressed CPIO archive, it is first
decompressed and extracted to a temporary location, before files are overlaid.
2) The Base file system is then overlaid by the CommonDir overlay set.
4) The result is then overlaid by the coprocessor-specific MicDir hierarchy for that
coprocessor, as specified by the MicDir parameter in the corresponding micN.conf file.
5) The resulting hierarchy is then overlaid by file hierarchies specified by Overlay parameters
in the corresponding micN.conf file.
6) The resulting hierarchy is re-archived and compressed if the file system will be resident in
coprocessor memory, as specified by the RootDevice RamFS or RootDevice SplitRamFS
parameter. It is left as an expanded file hierarchy on the host if it is to be NFS mounted.
As mentioned earlier, create a copy of the existing configuration before calling micctrl --
initdefaults, if you might want to use that configuration again, for example with an earlier
Intel® MPSS release.
Many micctrl operations directly modify files in the per-coprocessor overlay file sets
(Section 4.1.1.3.2). However network configuration can be a multistep process and directly
editing the various network configuration files is not feasible. Instead, network configuration
settings are accumulated in micN.conf configuration files, and the accumulated settings are
propagated to the per-processor files set and host configuration files.
Several micctrl commands are intended to help the user recover when a configuration is
problematic for some reason. micctrl --resetdefaults attempts to restore configuration
parameters and the associated Intel® Xeon Phi™ coprocessor file systems back to the default
state. It shuts down the current network, removes several files in the /etc directories in the
per-coprocessor overlay sets, removes the old configuration files default.conf and micN.conf,
and effectively calls micctrl --initdefaults. micctrl --resetdefaults does not remove files that the
user has added to the various overlay sets. See Appendix B.4.2.2 for details.
In the remainder of this document, we almost always assume the default values of these
modifiers. That is, we typically describe the default.conf and micN.conf configuration files as
being in the /etc/mpss directory. It should be understood that the correct location of these
files is $DESTDIR/$CONFIGDIR/default.conf (see below).
Similarly, we typically assume that per-coprocessor overlay hierarchy is rooted at the default
/var/mpss/micN, which is the default value of the MicDir configuration parameter.
4.1.3.1 $DESTDIR
We use the symbol $DESTDIR to indicate a directory path that micctrl prepends to all accesses
of files which it creates. By default $DESTDIR is “/”. The default can be overridden by defining
the MPSS_DESTDIR environment variable to some value, for instance:
The $DESTDIR default and MPSS_DESTDIR environment variable can be overridden with the
--destdir=<destdir> micctrl global option.
$DESTDIR is applied dynamically. That is, micctrl prepends the current value of $DESTDIR to
each file path at the time of file access. This means that the same $DESTDIR value must be
used consistently to access a particular set of files.
micctrl will create a new configuration, if one does not exist, rooted at /destdir1. However, for
the command sequence:
micctrl will create a new configuration, if one does not exist, rooted at /destdir2 because the
--destdir global option overrides the value of $DESTDIR that was set by MPSS_DESTDIR
environment variable.
If the current value of $DESTDIR is not the default “/”, micctrl will not make any changes to
the host’s network configuration. In particular, it will not create network configuration files
(For Instance: /etc/sysconfig/network-scripts/ifcfg-micN), nor will it bring a network interface
up or down.
4.1.3.2 $CONFIGDIR
We use the symbol $CONFIGDIR to indicate the directory path at which micctrl creates and/or
accesses the default.conf and micN.conf configuration files, and the conf.d configuration
directory. By default $CONFIGDIR is /etc/mpss.
MPSS_CONFIGDIR <confdir>
MPSS_CONFIGDIR /home/mic/configdir
Note: /etc/sysconfig/mpss.conf is not created by default, and must be created by the user.
The $CONFIGDIR default and MPSS_CONFIGDIR parameter can be overridden by defining the
MPSS_CONFIGDIR environment variable to some value, for example:
4.1.3.3 $VARDIR
We use the symbol $VARDIR to indicate the directory path variable at which the
micctrl --initdefaults and --resetconfig commands create the common and micN overlay
hierarchies, and at which the micctrl --rootdev command places a ramfs file system image or
NFS file system hierarchy. By default $VARDIR is /var/mpss. The default can be overridden by
defining the MPSS_VARDIR environment variable to some value, for example:
The $VARDIR default and MPSS_VARDIR environment variable can be overridden by the
--vardir=<vardir> suboption to the micctrl --initdefaults, --resetconfig, and --rootdev
commands.
$VARDIR is applied persistently. That is, when micctrl --initdefaults or --resetconfig adds or
modifies a CommonDir or MicDir parameter to an Intel® MPSS configuration file, the
parameter values has the $VARDIR path prepended.
For example, assuming a configuration does not currently exist, then the command sequence:
CommonDir /vardir1/common
Micdir /vardir1/mic0
RootDevice Ramfs /vardir1/mic0.image.gz
The above paths are not prepended by the value of $DESTDIR, which is applied dynamically.
In the above example, micctrl will also populate a per-coprocessor overlay set at
$DESTDIR/vardir1/micN rather than at the default $DESTDIR/var/mpss/micN.
4.1.3.4 $SRCDIR
We use the symbol $SRCDIR to indicate the directory path at which the micctrl --initdefaults,
--resetdefaults, --resetconfig, and --cleanconfig commands look for the coprocessor’s Linux*
kernel image and default file system image. By default $SRCDIR is /usr/share/mpss/boot. The
Intel® Manycore Platform Software Stack (Intel® MPSS)
December 2015 User's Guide
79
Configuring and Booting the Intel® Xeon Phi™ Coprocessor
Operating System
default can be overridden by defining the MPSS_SRCDIR environment variable to some value,
for example:
export MPSS_SRCDIR=<srcdir>
The $SRCDIR default and MPSS_SRCDIR environment variable can be overridden by the
--srcdir suboption to the micctrl --initdefaults, --resetdefaults, --resetconfig, and --cleanconfig
commands.
$SRCDIR is applied persistently. For example, assuming that the Base and OSimage
parameters are not currently defined in the $DESTDIR/$CONFIGDIR/micN.conf configuration
file, then the command:
or
4.1.3.5 $NETDIR
We use the symbol $NETDIR to indicate the directory path at which the micctrl --initdefaults,
--resetdefaults, --resetconfig, --cleanconfig, --mac, --network, --addbridge, --modbridge and
--delbridge commands create and/or edit network control files. By default $NETDIR is
/etc/sysconfig/network-scripts on RHEL* host platforms and /etc/sysconfig/network on SLES*
host platforms. The default can be overridden by defining the MPSS_NETDIR environment
variable to some value, for example:
The $NETDIR default and MPSS_NETDIR environment variable can be overridden by the
--netdir suboption to the micctrl --initdefaults, --resetdefaults, --resetconfig, and --cleanconfig
commands.
or
creates a ifcfg-mic0 network control file in <netdir>, where <netdir> is the current value of
$NETDIR.
Parameters in the default.conf and micN.conf files are evaluated for this purpose. The
default.conf and micN.conf configuration files to be consulted are determined by the configdir
specification hierarchy described earlier in Section 4.1.3.2.
The following sections describe the parameters that are evaluated for this purpose.
specifies the Intel® Xeon Phi™ coprocessor Linux* OS kernel image and associated system
address map file.
OSimage /usr/share/mpss/boot/bzImage-knightscorner
/usr/share/mpss/boot/System.map-knightscorner
can be used to modify the --osimage parameter, or the parameter can be edited directly.
When <type> is Ramfs, a compressed cpio ram disk image is first constructed from overlay
sets, as described in Section 4.1.1.4, and placed at <location> when a boot request is given.
This image is pushed to coprocessor memory, where it is expanded into coprocessor memory.
When <type> is StaticRamfs, there must already be a compressed cpio ram disk image at
<location>. The specified image will be used without rebuilding when the coprocessor is
booted.
If <type> is NFS, the booting coprocessor will mount its root file system from the NFS export
specified by <location>. The <location> must be a fully qualified NFS mount location with the
format “server:location”. At boot time, there must already be a root file system hierarchy at
<location>.
If <type> is SplitNFS, the booting coprocessor will mount its root file system, /, from the NFS
export specified by <location> and its /usr file system from the NFS export specified by
<usr_location>. Both <location> and <usr_location> must be a fully qualified NFS mount
locations with the format “server:location”. At boot time, there must already be a root file
system hierarchy (minus /usr) at <location>, and a /usr hierarchy at <usr_location>.
can be used to modify the RootDevice parameter in one or more micN.conf configuration files,
or the parameter can be directly edited in a configuration file.
The mpssd daemon first constructs a (partial) kernel command line for each coprocessor being
booted, based on parameters in the Intel® MPSS configuration files. These parameters are
described throughout this document, and in Appendices A.3 and A.4.1. The resulting command
line is written to the /sys/class/mic/micN/cmdline sysfs node, where the mic.ko driver will
retrieve it.
Next, mpssd requests that the mic.ko driver start an Intel® Xeon Phi™ coprocessor by writing
a boot string to the /sys/class/mic/micN/state sysfs node. The format of this string depends
on whether the coprocessor file system is to be a RAM file system or is to be NFS mounted.
For the RAM file system, the format is:
boot:linux:<linux_kernel_image>:<ram_disk_file>
boot:linux:<linux_kernel_image>
The linux:<linux_kernel_image> part of the boot argument specifies the location of the Linux*
image which is used to boot the coprocessor. mpssd obtains this value from the OSimage
parameter.
The <ram_disk_file> part specifies the file system image. mpssd obtains this file name from
the RootDevice parameter.
When the mic.ko host driver receives the boot request, it first verifies that the coprocessor is
in the ready state, indicating that it has finished its HW initialization sequence and is ready to
receive a kernel and file system image to continue the boot process. If the coprocessor is not
ready to boot, the driver will report an error when the sysfs state entry is read and will not
attempt to perform the boot. Otherwise, the coprocessor state is set to booting.
Next the mic.ko host driver copies the specified Linux* image and file system image to the
coprocessor memory and writes the constructed command line via the standard Linux* kernel
boot protocol structure.
The driver’s last step is to write to a coprocessor register, effectively instructing it to jump to
the provided bzImage to finish the kernel boot process.
The initial ram disk image contains the loadable modules required for the real root file system.
Some of the arguments passed in the kernel command line are host memory addresses
required by those modules. The init program parses the kernel command line for needed
information and creates a /etc/modprobe.d/modprobe.conf file needed by the coprocessor’s
init process.
In the next step, the root command line parameter determines whether init mounts the file
system image that mic.ko previously copied to coprocessor memory, or NFS mounts a remote
file system.
If the root is set to be a ram file system, the init program creates a tmpfs (Linux* ram disk file
system type) in Intel® Xeon Phi™ coprocessor memory. It then copies all the files from the
initial ram disk image into the new tmpfs mount.
If any RPM files exist in the /RPMS-to-install directory, they will be installed. After installation,
this directory is removed to free disk space.
The ram disk image is activated as the root device by calling the Linux* switch_root utility.
This command instructs the Linux* kernel to remount the root device on the tmpfs mount
directory, release all file system memory references to the old initial ram disk and start
executing the new /sbin/init function. /sbin/init then performs the normal Linux* user level
initialization.
If an NFS mounted root file system is indicated, the init program initializes the mic0 virtual
network interface to the IP address supplied on the kernel command line and mount the NFS
export from the host.
As in the ram disk image, the NFS mount is activated as the root device by calling the Linux*
switch_root utility. This special utility instructs the Linux* kernel to remount the root device on
the NFS mount directory, release all file system memory references to the old initial ram disk
and start executing the new /sbin/init function.
/sbin/init performs the normal Linux* user level initialization. All the information required must
have already been in the NFS export.
Editing configuration files in the default file system image as needed. Typical areas
that require attention are networking and user access, the same as for assisted
configuration.
Initiating the coprocessor boot and shutdown processes by directly interacting with the
mic.ko driver.
The default installation automatically loads the mic.ko kernel module and starts the
mpss/ofed-mic services. If this behavior is not desired, switch off the services and remove
/etc/sysconfig/modules/mic.modules:
While a similar overlay process could be employed as part of manual configuration, we will
assume that the user directly edits the installed default file system.
The default file system image is a compressed CPIO archive, and is installed at
/usr/share/mpss/boot/initramfs-knightscorner.cpio.gz. To edit files, extract them from the
archive:
If the file system is to be NFS mounted, it is, left in this format. Otherwise, it should be re-
archived and compressed for uploading to coprocessor memory:
4.2.1.1 /init
The default file system’s /init script was briefly mentioned in Section 4.1.5.2, and is typical of
Linux* /init scripts. /init parses the command line parameters passed to it by the kernel, and
performs the following major steps:
Depending on command line parameters, mounts the file system image that the
mic.ko pushed to coprocessor memory as tmpfs, or NFS mounts a remote export
specified in the command line.
Finally, /init switches the root file system to the newly mounted file system image.
If /init is edited, for example, to support additional command line options, those changes will
need to be propagated to any new version of /init in subsequent versions of Intel® MPSS.
directory in the file system image, and place packages to be installed in that directory. The
/init script, described above, will rpm install any packages that it finds in the directory as the
last step before performing switch_root.
root=nfs:<server>:<export>
where <server> is the IP address of the exporting node and <export> is the exported
directory. For example, the command:
root=nfs:172.31.1.254:/var/mpss/mic0.export
will cause the directory at /var/mpss/mic0.export on node 172.31.1.254 (the default static
pair host IP address) to be NFS mounted as root.
The file system to be NFS mounted as root, as well as any other file systems to be NFS
mounted, must be described in the /etc/exports file of the exporting host. For example,
assume the coprocessor virtual endpoint IP address is 172.31.1.1. To export the host directory
/var/mpss/mic0.export, add a descriptor to the host’s /etc/exports such as:
[host]# exportfs -a
NFS mounting file systems other than root is done as on any standard Linux* systems. The file
system to be exported is described in /etc/exports as shown above, and the mount point is
described in the coprocessor’s /etc/fstab file. The NFS mounted root file system mount point
does not need to be explicitly added to the coprocessor’s /etc/fstab because /init mounts it.
For example, assume the host IP address is 172.31.1.254. To mount another host directory
/var/mpss/usr.export as /usr on the coprocessor, add a descriptor to the coprocessor’s
/etc/fstab, for example:
The mount point, in this case /usr, must exist in the coprocessor file system.
After the coprocessor is rebooted, the remote file system(s) will be mounted onto the
coprocessor’s files system.
The standard mount command can also be called interactively while the user is logged onto a
coprocessor to mount an exported file system.
The mic.ko driver expanded the original kernel command line. The entries card, vnet, scif_id,
scif_addr, vnet_addr, cons_hdr_addr, virtio_addr, mem, ramoops_size, ramoops_addr, and
crashkernel are automatically generated by the driver. These options are non-configurable.
Section 9 describes a range of configuration options, many of which are conveyed to the
coprocessor as kernel command line parameters.
In order to boot or reboot the coprocessor, it must first be in the ready state. If it is in the
online state from a previous boot, it can be shut down by writing shutdown to the state node:
Shutting down the coprocessor rather than resetting it is generally recommended particularly
if there might be I/O data that must be flushed to some external device.
Both shutdown and reset may take several seconds, so the user must continue to check the
state until the coprocessor is reported to be ready:
Wait until it is out of the booting state and in the online state:
The coprocessor is now ready for use. For example you can ssh to it:
5 Networking Configuration
The Intel® Xeon Phi™ coprocessor does not have a hardware Ethernet capability. Instead
Virtual Ethernet drivers on the host and coprocessors emulate Ethernet devices to enable the
standard TCP/UDP IP stack on the coprocessor. This section describes configuring these
endpoints and the construction of networks of Intel® Xeon Phi™ coprocessors. Finally,
configuration of IP networking over InfiniBand* is discussed.
Each Linux* system in a network uses a host name to identify itself. The Hostname Intel®
MPSS configuration parameter is used to configure the host name of Intel® Xeon Phi™
coprocessor.
Each network interface is identified by its MAC address. Each virtual network endpoint on the
host and on a coprocessor requires its own unique address. These addresses are configured
using the MacAddrs parameter.
For the purpose of network configuration, several files are added or modified, based on the
host OS type (Red Hat* or SUSE*). These may include:
/etc/hosts
/etc/network/interfaces # SUSE*
/etc/sysconfig/network-scripts/ifcfg-*; # RHEL*: various depending on network topology
All network configuration parameters take effect upon executing 1service mpss start.
In some clusters, detecting and protecting against “man in the middle” and other such attacks
might not be required. In this case, the system administrator may use the micctrl --hostkeys
command to set the host SSH keys to be the same cluster wide.
Hostname <name>
Hostname <short_host_name>-micN.<domain>
<domain> is the host’s domain name. For example, if the host’s hostname is abc.xyz.com,
then the coprocessor hostname will be abc-micN.xyz.com. The host name string may be
changed by editing the micN.conf configuration file.
At driver load time, the host and coprocessor drivers generate MAC addresses for their
respective endpoints, setting the first three octets to 4C:97:BA. This occurs regardless of
whether configuration is assisted or manual.
Normally, these MAC addresses are based on the coprocessor serial number and are consistent
across Intel® MPSS service restart. Some early coprocessors lacked serial numbers; for those
coprocessors, the host and coprocessor drivers generate random MAC addresses.
It is recommended to use the default serial number based MAC addresses, but these can be
overridden if necessary.
MacAddrs Serial
This specifies serial number based MAC address generation. In addition to random MAC
address generation, explicit host and coprocessor can be assigned. See Appendix A.5.2 for
details.
can be used to modify the MacAddrs parameter in one or more micN.conf configuration files,
or the parameter can be directly edited in a configuration file. See Appendix B.4.5.1 for
details.
Note: The mpss service must be stopped before using micctrl to configure the network topology:
Although a static pair network topology can be partially configured by editing the Network
configuration parameter directly, other steps are required. Therefore the recommended
method of changing the network configuration is to use the micctrl --network command.
Specifically, the micctrl --network command will edit configuration files as needed to remove
the current network configuration before implementing the new configuration. The micctrl --
network command also creates and/or modifies host and coprocessor network configuration
files, and brings network endpoints on the host down and up as needed.
Configuring a static pair network using the micctrl --network command is described in detail in
Appendix B.4.5.3.
This section describes in some detail the edits and other operations that micctrl performs
when the micctrl --network command is used to configure a static pair network topology. The
information in this section is not required in order to use these micctrl commands. The reader
can skip this section unless a deeper understanding of the configuration process is needed.
For explanatory purposes we will assume the following command is executed on a host system
with two Intel® Xeon Phi™ coprocessors installed:
In this case, micctrl will set the third quad of each IP address to N+1 for each coprocessor
with a name specified to micN. The fourth quad of the host endpoint IP address will be 254,
and the coprocessor endpoint IP address will be 1. MTU will default to 64512, and modhost
and modcard will both default to yes.
micctrl first parses the Network configuration parameter in each of the /etc/mpss/micN.conf
files to determine the existing network configuration.
micctrl next shuts down the current virtual network connections using the ifdown micN
command for each of the coprocessors, deletes existing /etc/sysconfig/network-scripts/ifcfg-
micN files, removes the micN entries from /etc/hosts, and then creates a new
/etc/sysconfig/network-scripts/ifcfg-micN file for each coprocessor. The ifcfg-mic0 will now
have contents similar to:
DEVICE="mic0"
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED="no"
BOOTPROTO=static
IPADDR=172.31.1.254
NETMASK=255.255.255.0
MTU=64512
micctrl now executes ifup micN for each of the coprocessors. At this time, the ifconfig
command relevant output should be similar to:
showing that the two host endpoints have the IP address specified by the micctrl --network
command.
micctrl then creates/updates the network configuration files for the Intel® Xeon Phi™
coprocessor file system. It will first create/update the network interface configuration file
/var/mpss/mic0/etc/network/interfaces with the contents:
gateway 172.31.1.254
netmask 255.255.255.0
mtu 64512
Next, micctrl --network replaces the Network configuration parameter in each coprocessor’s
configuration file with a new parameter. For example the /etc/mpss/mic0.conf file will now
have the Network configuration parameter:
micctrl now updates the /etc/hosts file to include descriptors of the remote endpoints:
and then creates/updates the /var/mpss/micN/etc/hosts files to have content similar to the
following (/var/mpss/mic0/etc/hosts shown):
The next boot of the Intel® Xeon Phi™ coprocessors, by either 1service mpss start or micctrl -b
will use the new network configuration.
This network topology depends on a Bridge in the default.conf configuration file and a Network
parameter micN.conf configuration file of each coprocessor to be included in the bridge. The
Bridge and Network parameters for the internal bridge configuration are described in detail in
Appendix A.5.4.
Although an internal bridge network can be partially configured by editing the Bridge and
Network configuration parameters directly, other steps are required. Therefore the
recommended method of changing the network configuration is to use the micctrl --network
command. Specifically, the micctrl --network command will edit configuration files as needed
to remove the current network configuration before implementing the new configuration.
micctrl --network also creates and/or modifies host and coprocessor network configuration
files, and brings network endpoints on the host up and down as needed.
Configuring an internal bridge network using the micctrl --network command is described in
detail in Appendix B.4.5.4.
This section describes in some detail the edits and other operations that micctrl performs
when the micctrl --network and --addbridge commands are used to configure an internal
bridge network topology. The information in this section is not required in order to use these
micctrl commands. The reader can skip this section unless a deeper understanding of the
configuration process is needed.
For explanatory purposes we will assume the following commands are executed on a host
system with two Intel® Xeon Phi™ coprocessors installed:
The micctrl --addbridge command performs a series of steps starting with removal of the
current network configuration. micctrl first parses the Network configuration parameter in
each of the /etc/mpss/micN.conf files and the Bridge parameter in the /etc/mpss/default.conf
file to determine the existing network configuration.
micctrl then adds/modifies the Bridge parameter in the /etc/mpss/default.conf file to contain:
The value 24 in this parameter is the default netbits value, defining a netmask of FFFFFF00.
The value 64512 is the default MTU value.
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
DELAY=0
NM_CONTROLLED="no"
BOOTPROTO=static
IPADDR=172.31.1.254
NETMASK=255.255.255.0
The micctrl utility then executes the ifup br0 command to bring up the bridge interface.
The micctrl --network command slaves the host ends of the virtual networks to the designated
bridge br0, and replaces the network configuration files for the Intel® Xeon Phi™ coprocessors
with a configuration for the new IP addresses. micctrl again parses the Network configuration
parameter in each of the /etc/mpss/micN.conf files to determine the existing network
configuration.
micctrl next shuts down the current virtual network connections using the ifdown micN
command for each of the coprocessors, deletes existing /etc/sysconfig/network-scripts/ifcfg-
micN files, removes the micN entries from /etc/hosts, and then creates a new
/etc/sysconfig/network-scripts/ifcfg-micN file for each coprocessor. The ifcfg-mic0 will now
have contents similar to:
DEVICE=mic0
ONBOOT=yes
NM_CONTROLLED="no"
BRIDGE=br0
MTU=64512
where BRIDGE=br0 causes the new endpoint to be added to the bridge. In general, an
identical /etc/sysconfig/network-scripts/ifcfg-micN file is created for each micN with
DEVICE=micN.
When this is complete micctrl executes ifup micN, for each coprocessor. At the end of this
process, the brctl show command can be used to check the status of the bridge. Its output
should be similar to:
These commands show that the mic0 and mic1 virtual network interfaces are slaved to bridge
br0. Bridge br0 has been assigned the IP address specified by the micctrl --addbridge
command, and the slaves do not have their host IP addresses.
micctrl then creates the network configuration files for the Intel® Xeon Phi™ coprocessor file
system. It will first create/update the network interface configuration file
/var/mpss/mic0/etc/network/interfaces with the contents:
The existing Network configuration parameter in each coprocessor’s configuration file is then
replaced with a new parameter. For example the /etc/mpss/mic0.conf file now has the
Network configuration line:
The /etc/mpss/mic1.conf file will have the same line with the exception that the IP address is
172.31.1.2.
micctrl now updates the /etc/hosts file to include descriptors of the remote endpoints:
and then creates/updates the /var/mpss/micN/etc/hosts files to have content similar to the
following (/var/mpss/mic0/etc/hosts shown):
In general, each coprocessor’s /etc/hosts file includes the IP addresses and host names of all
coprocessors on the internal bridge network.
The next boot of the Intel® Xeon Phi™ coprocessors, by either 1service mpss start or micctrl -b
will use the new network configuration.
This network topology depends on a Bridge in the default.conf configuration file and a Network
parameter micN.conf configuration file of each coprocessor to be included in the bridge. The
Bridge and Network parameters for the external bridge configuration are described in detail in
Appendix A.5.5.
Although an external bridge network can be partially configured by editing the Bridge and
Network configuration parameters directly, other steps are required. Therefore the
recommended method of changing the network configuration is to use the micctrl --network
command. Specifically, the micctrl --network command will edit configuration files as needed
to remove the current network configuration before implementing the new configuration.
micctrl --network also creates and/or modifies host and coprocessor network configuration
files, and brings network endpoints on the host up and down as needed.
Configuring an external bridge network using the micctrl --network command is described in
detail in Appendix B.4.5.5.
This section describes in some detail the edits and other operations that micctrl performs
when the micctrl --network and --addbridge commands are used to configure an external
bridge network topology. The information in this section is not required in order to use these
micctrl commands. The reader can skip this section unless a deeper understanding of the
configuration process is needed.
When IP address assignment is static, micctrl performs the same steps as for the Internal
Bridge configuration, except that the default MTU size is 1500 bytes.
For dhcp based IP address assignment, the steps are similar except that the bridge descriptor
file, for example /etc/sysconfig/network-scripts/ifcfg-br0, will specify dhcp address
assignment. For example:
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
DELAY=0
NM_CONTROLLED="no"
BOOTPROTO=dhcp
NETMASK=255.255.255.0
MTU=1500
BOOTPROTO is set to dhcp rather than static, and there is no IPADDR parameter. Similarly,
each coprocessor endpoint must be described in that coprocessor’s
/var/mpss/micN/etc/network/interfaces file with contents similar to:
This configures the mic0 coprocessor endpoint for DHCP IP address assignment and configures
the endpoint mtu to 1500 bytes for compatibility with other devices.
Because IP addresses are assigned by the dhcp server, the host and coprocessor /etc/hosts
files are not modified.
The default files system image, as installed, already includes several of these files, specifically:
/etc/network/interfaces
/etc/hostname
/etc/nsswitch.conf
/etc/hosts
in the section describing the micN endpoint of the /etc/network/interfaces file in the
coprocessor file system image.
Standard Linux* utilities such as ifconfig can be used to change the MAC address of host
endpoints. For example:
Such a direct assignment is not persistent. When the host driver is restarted, the MAC address
will revert to the default value.
We assume a platform with two Intel® Xeon Phi™ coprocessors installed, and that virtual
network endpoints are given micN names, for instance mic0 for coprocessor 0. We also
assume that the coprocessors have been reset and are in the ready state, and that previous
network endpoints and bridges have been shut down, for example, by using the ifdown
command.
DEVICE="mic0"
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED="no"
BOOTPROTO=static
IPADDR=172.31.1.254
NETMASK=255.255.255.0
MTU=64512
The host and coprocessor IP addresses must be from the same subnet.
A descriptor of each coprocessor endpoint should be added to the host’s /etc/hosts file to
associate IP addresses with the coprocessor hostnames. For example:
For this example, /etc/hosts includes descriptors of both the host endpoint and the local
endpoint.
Each of these endpoints can now be brought up by calling the ifup micN command for each
bridged coprocessor. At this point the ifconfig command relevant output should be similar to:
The next boot of the Intel® Xeon Phi™ coprocessors will use the new network configuration.
the chosen device name, IP address, netmask, and mtu value. For example, ifcfg-br0 should
have content similar to:
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
DELAY=0
NM_CONTROLLED="no"
BOOTPROTO=static
IPADDR=172.31.1.254
NETMASK=255.255.255.0
DEVICE=mic0
ONBOOT=yes
NM_CONTROLLED="no"
BRIDGE=br0
MTU=64512
The bridge and coprocessor IP addresses must be from the same subnet.
The host’s /etc/hosts file must contain a descriptor of coprocessor endpoint to associate IP
addresses with the coprocessor hostnames. For example:
Similarly, a descriptor of the corresponding host bridge endpoint should be added to each
coprocessor’s /etc/hosts file to associate the host’s endpoint IP address with the host’s
hostnames. For example, mic0’s /etc/hosts might contain:
In this example /etc/hosts includes descriptors of the local endpoint, the host endpoint, and
the other coprocessors.
The bridge interface can now be brought up using the ifup br0 command, and each host
endpoint can now be brought up by calling the ifup micN command for each bridged
coprocessor. At this point the brctl show command can be used to check the status of the
bridge. Its output should be similar to:
These commands show that the mic0 and mic1 virtual network interfaces are slaved to bridge
br0.
The next boot of the Intel® Xeon Phi™ coprocessors, by either 1service mpss start or micctrl -b
will use the new network configuration.
When IP address assignment is static, configuration is the same as for the Internal Bridge
configuration, except that the default mtu size is 1500 bytes.
If DHCP based IP address assignment is dynamic, the steps are similar except that the bridge
descriptor file, for example, /etc/sysconfig/network-scripts/ifcfg-br0, will be similar to:
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
DELAY=0
NM_CONTROLLED="no"
BOOTPROTO=dhcp
NETMASK=255.255.255.0
MTU=1500
with BOOTPROTO now set to dhcp rather than static, and no IPADDR parameter.
In both the static and dynamic IP address assignment cases, it is the system administrator’s
responsibility to add the gateway to the host network bridge configuration. For example add
GATEWAY=10.23.185.1 to /etc/sysconfig/network-scripts/ifcfg-br0.
This configures the mic0 coprocessor endpoint for DHCP IP address assignment and configures
the endpoint MTU to 1500 bytes for compatibility with other devices.
The code base is a direct port from OFED 1.5.4.1, without change. The module runs on top of
Intel® Xeon Phi™ CCL-Direct Kernel IB Verbs. As a result, most of the functional and
performance characteristics are bound by CCL-Direct restrictions. The driver is released to
enable InfiniBand*-based Lustre* solutions that require IPoIB interface regardless of LNET
configurations.
To enable the IPoIB interface on the Intel® Xeon Phi™ coprocessor from the host, edit
/etc/mpss/ipoib.conf to bring up the ib0 interface on a coprocessor with the default hostname
(mic0):
ipoib_enabled=yes
mic0_ib0=192.168.100.100
5.3.2 IP Addressing
Unlike the Intel® Xeon Phi™ coprocessor Ethernet virtual driver, IPoIB does not require
bridging or routing to be configured. In the default case, there is an automatically created
one-to-one mapping of the (HCA, Port) pairs between the host and coprocessor. Figure 13
shows an example configuration with two 2-port HCAs on the host. All 8 ports (host and
coprocessor combined) can be individually configured by net-if commands. On the Intel® Xeon
Phi™ node, the setting is configured by ifconfig command, by adding a configuration file in
/etc/sysconfig/network, or by editing /etc/mpss/ipoib.conf. The host side follows the host OS
conventions.
In datagram mode, the CCL-Direct IB UD transport is used, and the IPoIB MTU is equal to the
IB L2 MTU minus the IPoIB encapsulation header (4 bytes). For example, in a typical IB fabric
with a 2K MTU, the IPoIB MTU will be 2048 - 4 = 2044 bytes.
In connected mode, the IB RC transport is used. Connected mode takes advantage of the
connected nature of the IB transport that allows an MTU up to the maximal IP packet size of
64K. This reduces the number of IP packets needed for handling large UDP datagrams and
TCP segments, and increases the performance for large messages.
The coprocessor OS obtains user credentials from standard configuration files such as
/etc/passwd and /etc/shadow in the coprocessor filesystem, or from an LDAP or NIS server.
The OS looks for a user’s SSH keys in the .ssh directory in the user’s home directory.
micctrl can be used to populate /etc/passwd, /etc/shadow and SSH key files in the
coprocessor’s file system, or those files can be edited directly. In addition, micctrl can be used
to configure the coprocessor OS to access an LDAP or NIS server for user credentials, or that
configuration can be performed by directly editing LDAP or NIS configuration files.
Other micctrl --initdefaults parameters are unrelated to user credentialing. Refer to Appendix
B.4.2.1 for additional details on micctrl --initdefaults.
The micctrl --useradd command can be used to add a specified users attributes to
/var/mpss/micN/etc/passwd and /var/mpss/micN/etc/shadow. This command would typically
be called after a new user is added on the host. In the case that a specified coprocessor is in
the online (running) state, the corresponding changes are made dynamically on the
coprocessor. Refer to Appendix B.4.6.2 for additional details.
The micctrl --userdel command removes user credentials, and optionally the user’s home
directory, from the current configuration. Specifically, the user is removed from
/var/mpss/micN/etc/passwd and /var/mpss/micN/etc/shadow of the specified coprocessors,
and /var/mpss/micN/home/<user> is optionally deleted. In the case that a specified
coprocessor is in the online state, the corresponding changes are made dynamically on the
coprocessor. Refer to Appendix B.4.6.3 for additional details.
The micctrl --passwd command allows a non-privileged user to change their password on both
host and in the current configuration. Root can use this command to change the password of
any user. In the case that a specified coprocessor is in the online state, the corresponding
changes are made dynamically on the coprocessor. Refer to Appendix B.4.6.4 for additional
details.
The micctrl --groupadd and --groupdel commands enable adding and/or removing a specified
group from the configuration. In the case that a specified coprocessor is in the online state,
the corresponding changes are made dynamically on the coprocessor. Refer to
Appendix B.4.6.5 and Appendix B.4.6.6 for additional details.
The micctrl --sshkeys command copies the *.pub public ssh keys of a user, <user>, to
/var/mpss/micN/home/<user>/.ssh. This command might be called in the event that a user’s
ssh keys are created or changed after the initial configuration is established. Refer to
Appendix B.4.6.8 for additional details.
The network must be configured to enable access to the LDAP server, which typically will not
be on the local host. Thus, to be able to access the LDAP server from the coprocessor, the
external bridge configuration should be used. See Section 5.1.5.3 for details.
An LDAP client is not preinstalled in the coprocessor default file system and therefore must be
added. The micctrl --rpmdir command:
creates a configuration parameter that tells the micctrl --ldap command where to find the
RPMs that it will need to install the LDAP service, so that it can configure the needed RPM
overlay parameters.
is then used to configure the coprocessor OS to use LDAP for user authentication. The
<server> value specifies the LDAP authentication server to be used, and the base argument
specifies the domain to be used. For example:
Since the NIS server will not be running on the local host, the network must be configured to
enable access to a remote NIS server. To be able to access the NIS server from the
coprocessor, the external bridge configuration should be used. See Section 5.1.5.3 for details.
The NIS client is not preinstalled in the coprocessor default file system and, therefore must be
installed. The micctrl --rpmdir command
micctrl --rpmdir=$MPSS361_K1OM
creates a configuration parameter that the needed RPMs can be found in the $MPSS361_K1OM
directory.
is then used to configure the coprocessor OS to use NIS for user authentication. The <server>
value specifies the NIS authentication server to be used, and the domain argument specifies
the domain to be used. For example:
As described in Section 4.2, one must reboot a coprocessor in order for changes to user
credentialing to take effect. Alternatively, credentialing can be changed dynamically via SSH.
The network must be configured to enable access to the LDAP server, which typically will not
be on the host. In that case the network should be configured as an external bridge so the
LDAP server can be reached from the coprocessor. See Section 5.2.3.3 for details.
The following steps document enabling LDAP service. This particular configuration does not
allow changing the user’s password from the coprocessor.
1) Install nss-ldap and pam-ldap RPM files into the coprocessor file system. These RPMs are
included in the mpss-3.6.1-k1om.tar file. There are several ways to install these. See
Section 7 to learn about other approaches to adding software. In this example, required
RPMs are copied from $MPSS361_K1OM to a booted coprocessor micN:
The network must be configured to enable the coprocessor to access the NIS server, which
typically will not be on the host. In that case the network should be configured as an external
bridge. See Section 5.2.3.3 for details.
The following steps document enabling NIS service. This particular configuration does not
allow changing the user’s password from the coprocessor.
1) Install rpcbind, ypbind-mt, yp-tools, and glibc-extra-nss RPM files on the coprocessor.
These RPMs are included in the mpss-3.6.1-k1om.tar file. There are several ways to install
these. See Section 7 to learn about other approaches to adding software. In this example,
required RPMs are copied from $MPSS361_K1OM to a booted coprocessor micN:
3) Add the NIS/YP server to /etc/yp.conf and start the ypbind daemon.
4) Configure nss.
Configure sshd.
5) Configure PAM.
6) After configuring PAM, and before restarting sshd, configure autofs and re-start the
autofs/automount daemon:
5) Remove SSH key to ensure that user based authentication is not used.
The mpss-3.6.1-k1om.tar file, which can be obtained from the pIntel® Developer Zone website
(Intel® DZ), is composed of over 1900 RPM packages built for installation into the Intel® Xeon
Phi™ coprocessor file system. This section will describe options for installing these RPMs. For
those cases where some component or application is not included in mpss-3.6.1-k1om.tar,
refer to Section 8 to learn how to build software packages for the Intel® Xeon Phi™
coprocessor.
Most software can be added to a file system while it is resident on the host or another node
from which it is NFS exported, or while it is resident on an Intel® Xeon Phi™ coprocessor. In
all of these cases, the software to be added might be in the form of an RPM, a tarred
installation package, or another form.
For example, assume that you have cross-compiled an autotools-based software package.
(Cross compiling is discussed in Section 8.1). The last step in that process is to make install
the resulting components. One option is to make install into the CommonDir overlay directory.
The CommonDir parameter syntax is:
CommonDir <source>
Assuming that the CommonDir parameter has the value /var/mpss/common, for example:
CommonDir /var/mpss/common
installs the component into that overlay. On booting an Intel® Xeon Phi™ coprocessor, the
software will be available on all coprocessors because the CommonDir overlay is common to
all coprocessors.
can be used to add software to the coprocessor file system. The Overlay parameter(s) can be
unique to each coprocessor.
As an example of using the Overlay Simple option, you could perform the sequence:
to install software into a directory that is specific to that component, and then use the Simple
overlay type to add the component to the coprocessor file system:
In this way, a collection of components can be built, each in its own directory, which can be
selectively added to the coprocessor file system:
Note: The filelist overlay type might be deprecated in a future Intel® MPSS release. Please use the
simple and file overlay types instead.
After adding software, and if the file system is to be pushed to coprocessor memory, then it
must first be re-archived and compressed:
Boot the Intel® Xeon Phi™ coprocessor(s) specifying this new file system image as described
in Section 4.2.5. If the coprocessor file system is to be NFS mounted, then there is no need to
perform the re-archive step.
As discussed in more detail in Section 8, the RPM database in the default file system is built
with rpm v5, which should thus be used to add software to that file system. The MPSS SDK
includes an rpm v5 implementation that can be used for that purpose. Sourcing the file
/opt/mpss/3.6.1/environment-setup-k1om-mpss-linux prepends your PATH with
/opt/mpss/3.6.1/sysroots/x86_64-mpsssdk-linux/usr/bin so that the rpm command resolves
to the rpm v5 executable in the Intel® MPSS SDK. It’s recommended to use su to become root
when doing this.
[host]$ su
[host]# source /opt/mpss/3.6.1/environment-setup-k1om-mpss-linux
Note: The resulting PATH will cause other binaries, such as python, to be found in /opt/mpss/3.6.1-
/sysroots/x86_64-mpsssdk-linux/usr/bin. It is therefore recommended that /opt/mpss/3.6.1-
/environment-setup-k1om-mpss-linux is only sourced into the environment in which cross
compilation is being performed.
Verify that you will execute the rpm from the Intel® MPSS sdk:
Use the micctrl --base command to extract the default filesystem compressed CPIO image to
some directory:
Note: micctrl only extracts files to <some directory> if that directory does not already exist. If
<some directory> already exists, micctrl will only change the Base configuration parameter.
You can now install k1om RPMs into the file system at <some directory>. For example:
The --dbpath option tells rpm to use the database at /var/lib/rpm relative to --root. Thus it will
use the RPM data base in the coprocessor file system.
You can leave the file system in <some directory>. It will be used when constructing either an
NFS mounted file system or ram file system according to the RootDevice parameter. For
example:
builds the NFS exported file system using the Base at <some directory>. Alternatively, if
RootDevice is set to RamFS:
then the CPIO image will be built at boot time from the file system at <some directory>.
The rest of this section discusses different ways to install RPMs and how to preserve the
modified file system
Note: These instructions assume that mpss-3.6.1-k1om.tar has been untarred to some
$MPSS361_K1OM directory. The mpss-3.6.1-k1om.tar is available at the website (Intel® DZ):
http://software.intel.com/en-us/articles/intel-manycore-platform-software-stack-mpss.
If <source> is an RPM file, then it is copied to a special /RPMs-to-install directory in the file
system image that is pushed to one or more coprocessors, depending on whether the
parameter is added to micN.conf or the default.conf configuration file. If <source> is a
directory, then all the RPM files in that directory are copied to /RPMS-to-install. Multiple
Overlay parameters are allowed. These parameters can be edited directly or the
micctrl --overlay command can be used to add, modify or remove such parameters; see
Appendix A.4.2 and Appendix B.4.4.4 for additional details.
The RPMs in /RPMS-to-install are installed during the early phase of booting a coprocessor.
Some RPMs cannot be successfully installed during early boot phase, due to dependencies that
cannot be satisfied during that phase. If RPMs are not installed successfully, log files (refer to
Appendix I.1) may provide helpful information.
On micN, attempt to install the RPM. Here we assume that /tmp only holds RPM files that we
have copied for this example:
[micN]# cd /tmp
[micN]# rpm -ihv *.rpm
error: Failed dependencies:
less is needed by man-1.6f-r2.k1om
groff is needed by man-1.6f-r2.k1om
By iteratively copying RPMs and attempting to install them, less, groff, perl and libperl5 RPMs
are copied to the coprocessor, where installation can now complete successfully:
The steps in this section are for creating a repository of RPMs and using the Python
SimpleHTTPServer for serving them; we assume that these tools have been previously
installed on the host. Though other repository creation tools and HTTP servers are available,
we only provide instructions for using createrepo and Python SimpleHTTPServer. The host
firewall or iptables may need to be configured to allow zypper to access the repository on the
host.
Change to the folder where the Intel® MPSS k1om RPMs were extracted:
[host]$ cd $MPSS361_K1OM
[host]$ createrepo .
If no port is specified, python -m SimpleHTTPServer defaults to port 8000. In that case, the
following is sufficient:
We see that zypper takes care of all the dependencies if those dependencies can be satisfied
by the RPMs in the repo.
The directory containing such a repository can also be NFS mounted. Zypper can then access
it as in a local directory.
The following command, executed from the host, captures the current file system of a
specified coprocessor to host file /usr/share/mpss/boot/custom.cpio.gz:
Note: /dev is specified as a path because the -xdev option would otherwise prevent capturing that
path.
To use the captured file system image, change the RootDevice parameter to StaticRamFS, and
target the captured file. For example:
If doing manual configuration, the captured image is specified in the boot string. For example:
See Section 4.2.5 for details on manual configuration control of the coprocessor.
This document does not cover Intel® Composer XE support of offload programming. There are
numerous other documents and books that cover this topic. For more information, see
Programming and Compiling for Intel® Many Integrated Core Architecture.
/opt/mpss/3.6.1/sysroots/k1om-mpss-linux/var/lib/rpm
/opt/mpss/3.6.1/sysroot/x86-64-mpsssdk-linux/var/lib/rpm
and the default initramfs are in rpm v5 format. This format differs from the format generated
by rpm v4. Therefore rpm v5 (rpm5) must be used to install packages into
/opt/mpss/3.6.1/sysroots/k1om-mpss-linux and into the coprocessor file system. The
/opt/mpss/3.6.1/environment-setup-k1om-mpss-linux script sets PATH so that rpm v5, as well
as the other sdk utilities mentioned above, will be found.
RPM package in mpss-3.6.1-k1om.tar was built from an open source GNU Build System source
code package.
On many platforms, native compilation - building a GNU Build System package for execution
on the same platform - only requires unpacking the package, and changing to the newly
created directory to run the configure script. The script probes the system for various features
to create a makefile needed to build the package on the local system. Afterwards make is
executed to create libraries, executables and other files that comprise the package, followed
by make install to copy the resulting files to their proper location on the system. In the case of
native compilation, the configure script can determine the compiler and other build tools to
use by probing the system.
When cross compiling a GNU Build System package, however, configure must be told explicitly
about the build platform: where compilation is performed, and the host platform: where the
executable will be run. This is done via the configure options:
--build=build
--host=host
When building compiler tools, the system for which the tools will create output:
--target=target
Specifying the --host option tells configure that this is a cross compilation build. The script, in
turn, searches for the cross-compiling suite for the named host platform. In the case of cross-
compiling for the Intel® Xeon Phi™ coprocessor on an x86_64 Linux* platform, the following
configure options are required:
--build=x86_64-linux
--host=k1om-mpss-linux
--target=k1om-mpss-linux
Cross-compilation tools commonly have their target architecture as a prefix of their name,
thus configure will search for k1om-mpss-linux-gcc, etc.
Note: The resulting PATH will cause certain binaries, such as python, to be found in
/opt/mpss/3.6.1/sysroots/x86_64-mpsssdk-linux/usr/bin. It is therefore recommended that
only cross-compilation be performed in an environment in which /opt/mpss/3.6.1-
/environment-setup-k1om-mpss-linux has been sourced. This will avoid executing a binary in
/opt/mpss/3.6.1/sysroots/x86_64-mpsssdk-linux/usr/bin when it was intended to execute the
version installed on the host, for example in /usr/bin.
however, include a package for the zsh shell. To illustrate the cross-compilation process, we
will step through building zsh, and installing it into the coprocessor file system.
8.1.3.1 Download and untar the zsh source distribution from the internet
[host]$ tar xvf zsh-5.0.5.tar.bz2
[host]$ cd zsh-5.0.5
[host]$ export ZSH=`pwd`
Now invoke the zsh configure script. In this example, configure fails due to an unresolved
dependency on ncurses and ncurses_devel. The output from configure is abbreviated:
We now see that libform5, libtic5, libpanel5, and libmenu5 are also needed. Adding them to
the command reveals that libncurses is also needed:
When pkgconfig is added to the command, we see that libpopt0 is also needed:
$MPSS361_K1OM/libpanel5-5.9-r8.1.k1om.rpm \
$MPSS361_K1OM/libmenu5-5.9-r8.1.k1om.rpm \
$MPSS361_K1OM/libncurses5-5.9-r8.1.k1om.rpm \
$MPSS361_K1OM/pkgconfig-0.25-r3.k1om.rpm
error: Failed dependencies:
libpopt0 >= 1.16 is needed by pkgconfig-0.25-r3.k1om
libpopt.so.0()(64bit) is needed by pkgconfig-0.25-r3.k1om
libpopt.so.0(LIBPOPT_0)(64bit) is needed by pkgconfig-
0.25-r3.k1om
[host]$ cd $ZSH
[host]$ ./configure $CONFIGURE_FLAGS --prefix=/usr \
--libdir=/usr/lib64
configure: WARNING: unrecognized options: --with-libtool-sysroot
configure: loading site script /opt/mpss/3.6.1/site-config-k1om-
mpss-linux
configuring for zsh 5.0.5
:
:
zsh configuration
-----------------
zsh version : 5.0.5
host operating system : k1om-mpss-linux-gnu
source code location : .
compiler : k1om-mpss-linux-gcc
preprocessor flags : -m64 --
sysroot=/opt/mpss/3.6.1/sysroots/k1om-mpss-linux
executable compiler flags : -m64 --
sysroot=/opt/mpss/3.6.1/sysroots/k1om-mpss-linux
executable linker flags : --
sysroot=/opt/mpss/3.6.1/sysroots/k1om-mpss-linux -rdynamic
library flags : -ldl -ltinfo -lrt -lm -lc
installation basename : zsh
binary install path : /usr/bin
man page install path : ${prefix}/share/man
info install path : ${prefix}/share/info
functions install path : ${prefix}/share/zsh/5.0.5/functions
See config.modules for installed modules and functions.
[host]$ make
make[1]: Entering directory `/home/mic/Downloads/zsh-5.0.5/Src'
:
:
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/mic/Downloads/zsh-5.0.5/Doc'
If doing manual configuration, you might install directly into a file system image. To do this,
you must first expand the compressed cpio archive. Here we expand some ramfs image to
$HOME/initramfs:
where <current_ramfs_location> is the path to some compressed CPIO file system archive.
Of course, you can also install into an empty directory and then tar the resulting hierarchy for
later use.
The process for cross compiling with icc is as described above except that some variables need
to be modified when calling configure:
There is no special cross compiling version of icc that generates code for the Intel® Xeon Phi™
coprocessor. Instead, the -mmic option to icc instructs it to cross compile for the coprocessor.
Therefore icc is not included in the Intel® MPSS SDK, but rather must be installed on the host
as part of Intel® Composer XE installation. The k1om-mpss-linux-ld cross linker is still needed.
As mentioned previously, the coprocessor does not have a hard disk based file system, so all
tools, source code and temporary files need to fit into its memory. Large projects might
require you to use alternatives, such as an NFS mounted file system.
Because there is no native version of the Intel® ICC compiler, native compilation uses gcc and
is thus generally limited to components that are not particularly performance sensitive;
performance oriented applications should be cross compiled using the Intel ® ICC compiler.
In order to perform native compilation, gcc, the GNU binutils, and other common development
tools must be installed into the coprocessor’s file system. These components are not already
installed in the initramfs to save space. This is performed by installing a single RPM, task-
mpss-toolchain.
You can then perform the same autotools build process previously described, installing
additional dependent RPMs as needed. When you have successfully built the component, you
will have to decide what you will do with the build results. For example, make installing the
result into a local ramfs file system is not persistent unless the resulting file system image is
captured for subsequent reuse. Alternatively, make installing the result into an NFS mounted
file system captures the component for subsequent invocations.
To illustrate native compilation, we’ll build and install emacs. We’ll assume that you have
already booted the coprocessor on which you will perform the build.
Just as in cross-compiling zsh, we need to install ncurses. Assuming that the repo is still
attached, this can be done easily with zypper (as root):
Note: In the case that configure has failed, it is sometimes helpful to execute:
[mic]$ make
You can now just install the package into the current file system:
Alternatively, you can capture the results for later installation into some other file system
image. For example, the following installs the package to some specified subdirectory, then
creates a tarfile, emacs.tar, of that subdirectory:
The tar file can later be expanded onto an NFS mounted file system on the host, for example:
Each coprocessor core also has an Elapsed Time Counter (MICETC). However, when MICETC is
the clock source, the getttimeofday() access time is on the order of 100x slower than when
TSC is the clock source.
and the current clock source can be queried from sysfs, for example:
To run more concurrent processes, set the limit of file descriptors to 10 for each offload
process. Depending on the memory usage of each process, a large number of concurrent
offload processes may exhaust the device’s memory.
To run 200 concurrent processes, users will need to modify several parameters. Changes to
the configuration will not persist when modifying the files directly on the coprocessor; a reboot
will reset these settings. To permanently change the configuration, refer to the documentation
on micctrl and file overlays.
For the complete list of coi_daemon parameters, refer to the coi_daemon help option:
[micN]$ /usr/bin/coi_daemon -h
VerboseLogging <Disabled|Enabled>
VerboseLogging Disabled
For Manual Configuration, the quiet kernel command line parameter disables verbose logging.
Cgroup [memory=(disabled|enabled)]
Cgroup memory=disabled
PowerManagement cpufreq_(on|off);corec6_(on|off):
pc3_(on|off):pc6_(on|off)
micpm=cpufreq_(on|off);corec6_(on|off);pc3_(on|off);pc6_(on|off)
Note: It is recommended to keep the default power management settings unless directed by an
Intel® representative to change them.
1. Edit /etc/mpss/default.conf
To change this parameter, the Intel® MPSS host driver must be reloaded if it is currently
running. Follow the procedure:
To change this parameter, the Intel® MPSS host driver must be reloaded if it is currently
running. Follow the procedure:
To change this parameter, the Intel® MPSS host driver must be reloaded if it is currently
running. Follow this procedure:
To change this parameter, the Intel® MPSS host driver must be reloaded if it is currently
running. Follow this procedure:
To change this parameter, the Intel® MPSS host driver must be reloaded if it is currently
running. Follow this procedure:
Note: In kernel versions later than 3.1.0, the kernel has two different limits for locked pages: one
limit for pages locked using standard system calls and another limit for pages locked by kernel
modules on behalf of user processes.
Note: The mechanism for specifying the pinned pages limit may change in a future release.
To change this parameter, the Intel® MPSS host driver must be reloaded if it is currently
running. Follow the procedure:
When operating in micuser mode, each COI process spawned by the coi_daemon is owned by
user micuser.
When operating in _Authorized mode, each COI process spawned by the coi_daemon is owned
by same user as the corresponding host client process. Authentication of user credentials
occurs using an .mpsscookie file located in the user’s home directory. The cookie is created
and managed by the host’s mpss daemon.
When operating in _Dynamic mode, each COI process spawned by the coi_daemon is owned
by a new, unique user created by the coi_daemon. Files and directories created by such a
process cannot be accessed by other COI processes. This effectively isolates all COI Processes
from each other for better security.
coiparams='--coiuser=<mode>'
in one of the following files in the Intel® Xeon Phi™ coprocessor file system:
/etc/init.d/coi
/etc/coi.conf
/etc/sysconfig/coi.conf
A change to the ownership mode only occurs when the coi daemon is restarted:
Note: Changes to files that reside in coprocessor memory are not retained when the coprocessor is
shut down or restarted. Refer to Section 7 for information on preserving changes to the
coprocessor file system.
Alternatively, the --coiuser option can be passed to the coi_daemon when it is started:
9.4.1.3 Example
The following configures for the _Authenticated user mode, overriding whatever is configured
in /etc/init.d/coi and /etc/coi.conf:
For detailed information about the --coiuser and other coi_daemon parameters, run the
coi_daemon on the coprocessor with the --help option:
The virtual console devices are /dev/ttyMICN for the each Intel® Xeon Phi™ coprocessor micN.
To configure minicom for virtual console access, perform the following instructions for each
coprocessor:
1. Start minicom:
[host]# minicom -s
b. Press <enter>
The block device to be used is communicated to the mic.ko driver by writing its path to the
/sys/class/mic/micN/virtblk_file sysfs node after coprocessor micN has been booted. The
virtblk driver supports only one virtio block device file on the host at any time. Once a virtio
block device file is specified by writing to /sys/class/mic/micN/virtblk_file, it cannot be
changed until the coprocessor is rebooted. To use multiple virtio block devices, create multiple
partitions in a virtio block device file. Those partitions are referenced as /dev/vda1, /dev/vda2.
If a virtio block device file is not assigned, then unloading the Intel® MPSS host driver will
trigger the message "request comes in while coprocessor side driver is not loaded yet. Ignore"
in dmesg and /var/log/messages.
If the coprocessor side driver, mic_virtblk, is loaded without assigning a virtio block device file,
the error message "Have set virtblk file?" will be displayed in dmesg and /var/log/messages.
Identify the file or block device on which the virtblk file system will reside.
2) Coprocessor side:
2) Coprocessor side:
The line following Initial Value: in the descriptions below is the parameter value initially set by
micctrl --initdefaults. Not all parameters have an initial value set by micctrl --initdefaults.
Intel® configuration file text lines beginning with the # character are treated as comments.
Initial Value:
Version 1 1
Description:
The Version parameter sets the coprocessor configuration file version. As new releases are
produced, the version is used by the micctrl --initdefaults command to identify where to
update configuration files. This parameter should NOT be manually edited.
Include <config_file_name>
Initial Value:
Include default.conf
Include “conf.d/*.conf”
Description:
Each configuration file can include other configuration files. The Include parameter lists
configuration file(s) to be included. The configuration file(s) to be included must be in
/etc/mpss. The configuration parser processes each parameter sequentially. When the Include
parameter is encountered, the included configuration file(s) are immediately processed. If a
parameter is set multiple times, the last instance of the parameter setting will be applied.
The second entry in the micN.conf files is typically (and by default) the line:
Include “conf.d/*.conf”
This is a special rule, specifying that any configuration file that is placed in the
/etc/mpss/conf.d directory will be included.
Initial Value:
OSimage /usr/share/mpss/boot/bzImage-knightscorner
/usr/share/mpss/boot/System.map-knightscorner
Description:
The OSimage parameter specifies the Intel® Xeon Phi™ coprocessor Linux* OS boot image
and its associated system address map file.
OSimage may be changed using the micctrl --osimage command or by editing this parameter
directly.
BootOnStart (Enabled|Disabled)
Initial Value:
BootOnStart Enabled
Description:
The BootOnStart parameter controls whether the Intel® Xeon Phi™ coprocessor is booted
when the mpss service starts. If set to Enabled, the mpssd daemon will attempt to boot the
Intel® Xeon Phi™ coprocessor when 1service mpss start is called.
BootOnStart may be changed using the micctrl --autoboot command or by editing this
parameter directly.
A.3.1 ExtraCommandLine
Parameter Syntax (default.conf):
ExtraCommandLine "<commands>"
Initial Value:
ExtraCommandLine "highres=off"
Description:
Initial Value:
Console "hvc0"
Description:
Intel® MPSS software supports a PCIe bus virtual console driver. Its device node (hvc0) is the
default value assigned to the Console parameter, and should not be changed.
PowerManagement
“cpufreq_(on|off);corec6_(on|off);pc3_(on|off);pc6_(on|off)”
Initial Value:
PowerManagement "cpufreq_on;corec6_off;pc3_on;pc6_on"
Description:
The PowerManagement parameter is a string of four attributes passed directly to the kernel
command line for the coprocessor’s power management driver. The mpssd daemon and
micctrl utility do not validate any of the parameters in this string or its format.
PowerManagement may be changed using the micctrl --pm command or by editing this
parameter directly.
Intel® Xeon Phi™ coprocessor power states are described in the Intel® Xeon Phi™ Coprocessor
Datasheet
Note: It is recommended to use the default power management settings unless directed by an Intel®
representative to change them.
A.3.4 ShutdownTimeout
Parameter Syntax (default.conf):
ShutdownTimeout <value>
Initial Value:
ShutdownTimeout 300
Description:
Setting value to a positive integer specifies the maximum number of seconds to wait for the
coprocessor to shut down. If shut down time exceeds the value, the coprocessor is reset.
Setting value to any negative value indicates to wait indefinitely for the coprocessor to shut
down.
Setting value to zero indicates to reset the coprocessor without waiting for it to shut down.
A.3.5 CrashDump
Parameter Syntax (default.conf):
Initial Value:
CrashDump /var/crash/mic 16
Description:
The CrashDump parameter specifies the host directory, <dirname>, in which to place
coprocessor crash dump files, and the maximum size, <limit>, in gigabytes of such files.
A.3.6 Cgroup
Parameter Syntax (micN.conf):
Cgroup [memory=(disabled|enabled)]
Initial Value:
Cgroup memory=disabled
Description:
The Cgroup parameter configures cgroups categories. Their configuration is currently limited
to controlling the status of the memory cgroup.
The memory cgroup is disabled by default. Enabling cgroup memory support may reduce
performance.
Cgroup may be changed using the micctrl --cgroup command or by editing the parameter
directly.
A.3.7 VerboseLogging
Parameter Syntax (micN.conf):
VerboseLogging (Enabled|Disabled)
Initial Value:
VerboseLogging Disabled
Description:
The VerboseLogging parameter specifies whether the quiet kernel command line parameter is
passed to the Intel® Xeon Phi™ coprocessor on boot. The quiet kernel parameter suppresses
most kernel messages during kernel boot. VerboseLogging is disabled by default. Enabling
VerboseLogging will increase boot times.
A.4.1 RootDevice
Parameter Syntax (micN.conf):
Initial Value:
Description:
The RootDevice parameter defines the type of root device to mount. Supported types are
RamFS, StaticRamFS, NFS, and SplitNFS.
The RamFS type builds a compressed cpio ram disk image when a request to boot is received.
<ramfs_location> is the directory path and file name of the resulting ram disk image. The
image is used as the contents to be loaded into the root tmpfs file system.
The StaticRamFS type causes the compressed cpio image <ramfs_location> to be used as the
contents of the root file system for the booting coprocessor. The StaticRamFS boot will fail if
the image file is not already present at <ramfs_location>.
The static ramfs image may have been previously created by booting with RootDevice set to
RamFS. Optionally, when RootDevice is StaticRamFS, the micctrl --updateramfs command
causes a compressed cpio image to be built and placed at the <ramfs_location> of the
StaticRamFS parameter. System administrators may also supply their own initial ram disk
image.
The NFS type instructs the booting coprocessor to mount the NFS share specified by the
<share> argument as the root file system. <share> must be a fully qualified NFS mount
location with the format “server:location”, for example 10.10.10.12:/export/mic0.
The SplitNFS type is the same as NFS except it also provides a separate NFS share at
<usr_share> to mount as the /usr directory on the coprocessor.
RootDevice may be changed using the micctrl --rootdev command or by editing the parameter
directly.
These parameters collectively specify all the files from which a root file system cpio image is to
be built.
A.4.2.1 Base
Parameter Syntax (micN.conf):
Initial Value:
Description:
The Base parameter specifies the file system hierarchy over which other hierarchies are
overlaid to produce the initial file system of an Intel® Xeon Phi™ coprocessor. When the Base
type is CPIO, <target> is interpreted as the file name of a CPIO file system archive. When the
Base type is DIR, <target> is interpreted as the root of an expanded (non-archived) file
system.
Base may be changed using the micctrl --base command or by editing the parameter directly.
A.4.2.2 CommonDir
Parameter Syntax (default.conf):
Initial Value:
CommonDir /var/mpss/common
Description:
The CommonDir parameter defines a directory at <source> whose contents overlay the Base
file system at /. Thus if CommonDir is /var/mpss/common and there is a file
/var/mpss/common/foo/bar, then that file will be found as /foo/bar in the resulting file
system.
Intel® MPSS installation does not create or populate the CommonDir directory. It is typically
created by the micctrl --initdefaults command. Files that are added to this directory are
maintained between updates to the Intel® MPSS installation.
CommonDir may be changed using the micctrl --commondir command or by editing the
parameter directly.
A.4.2.3 MicDir
Parameter Syntax (micN.conf):
MicDir <location>
Initial Value:
MicDir /var/mpss/micN
Description:
The MicDir parameter defines a directory at <location> whose contents overlay the
CommonDir file system at / to create file system unique each coprocessor. Intel® MPSS
installation does not create or populate. It is typically created by the micctrl --initdefaults
command. Files that are added to this directory are maintained between updates to the
Intel® MPSS installation.
MicDir may be changed using the micctrl --micdir command or editing the parameter directly.
Note: In some previous Intel® MPSS versions, MicDir took a <descriptor file> parameter:
The <descriptor file> parameter used to identify a file that described where files in the
directory subtree at <location> were to be placed in the Intel® Xeon Phi™ coprocessor’s file
system, and the permissions of those files. The <descriptor file> parameter to MicDir has
been deprecated. New configuration files generated with the micctrl --initdefaults command do
not include it. If the micctrl --resetdefaults command is executed, the <descriptor file>
argument will be removed wherever it is found.
A.4.2.4 Overlay
Parameter Syntax (micN.conf):
Initial Value:
<None>
Description:
The Overlay parameter specifies a file or set of files that are to be added to the initial file
system, overlaying the Base, CommonDir, and MicDir specified directory hierarchies. There
can be multiple Overlay parameters. If the Overlay state value is off, the parameter is
ignored. The Overlay parameter is obeyed if the state value is on.
Overlay File overlays the file <source> onto the initial file system image at <target>.
Directory and file ownership and permissions are preserved.
Overlay Simple overlays the file system hierarchy at <source> onto the initial file system
image at <target>. Directory and file ownership and permissions are preserved.
Overlay RPM copies the <source> file to a special /RPMs-to-install directory in the initial file
system. During the coprocessor boot process, the init program will attempt to install any RPMs
which it finds in that directory. Other types of files are ignored.
Overlay Filelist overlays files in the directory <source> onto the initial file system image based
on specifications in the <target> file. Use of Overlay Filelist is deprecated.
Overlay may be changed using the micctrl --overlay command or editing the parameter
directly.
Note: Do not overlay $MPSS361_K1OM. That is, do not define a parameter similar to:
Doing so will cause micctrl to attempt to upload and install all RPMs in the $MPSS361_K1OM,
and will likely result in the coprocessor running out of memory or hanging.
K1omRpms <location>
Initial Value:
<None>
Description:
The implementation of some micctrl commands, specifically those which configure for use of
LDAP and NIS services, needs to know where to find the set of RPM files that it needs to
complete installation of LDAP and NIS in the coprocessor file system. The K1omRpms
parameter should point to such a <location>. This parameter is not defined by default. In
general, it can be set to the directory which we refer to symbolically as $MPSS361_K1OM.
K1omRpms may be changed using the micctrl --rpmdir command or by editing the parameter
directly.
Hostname <name>
Initial Value:
<host name>-micN.<domain>
or
<host name>-micN
where <host name> is the “short” hostname of the host platform, as returned by calling
hostname -s, micN is the coprocessor name, and <domain> is the host’s domain name as
return by hostname -d.
Description:
The Hostname parameter specifies the host name value to be inserted in the hostname.conf
file of coprocessor micN.
Initial Value:
MacAddrs Serial
Description:
MAC addresses must be generated for the virtual network interfaces of the host and Intel®
Xeon Phi™ coprocessors. However, as a prerequisite, both ends of the virtual network need to
have MAC addresses assigned.
By default, MAC addresses are generated based on the serial number of the Intel® Xeon Phi™
coprocessor. Some older coprocessors do not have a usable serial number; in that case the
MAC address is generated randomly.
The least significant bit is set in MAC addresses generated for host endpoints, and clear in
MAC addresses generated for coprocessor endpoints. In addition, the top three octets of
generated MAC addresses have the IEEE assigned value 4C:79:BA to enable identifying Intel®
Xeon Phi™ coprocessor interfaces.
The system administrator may override the default Serial behavior with the MacAddrs
configuration parameter. For MacAddrs Random, random addresses are generated.
For MacAddrs <host MAC>:<card MAC>, the specified MAC addresses are statically assigned
to the host and coprocessor network endpoints of micN.
MacAddrs may be changed using the micctrl --mac command or by editing the parameter
directly.
Initial Value:
Description:
In the static pair network topology, every Intel® Xeon Phi™ coprocessor is assigned to a
separate subnet known only to the host.
<cardIP> and <hostIP> are the IP addresses of the coprocessor and host endpoints. They
must each be a fully qualified IP address, and the first three quads of the address must match.
The mtu parameter specifies the packet size to use over the virtual network connection.
The netbits argument specifies the number of high order bits that are set in the Netmask. The
<hostIP> and <cardIP> must be identical over the high order <netbits> bits. The default
value is 24, defining a netmask of 255.255.255.0. For a static pair configuration it should
If modhost is set to yes, the coprocessor’s 'IPaddress hostname' pair is appended to the
contents of the host's /etc/host file with the comment '#Generated-by-micctrl'. If modhost is
set to no the entry matching the coprocessor’s IP address with the comment '#Generated-by-
micctrl' will be removed from the host's /etc/hosts file.
If modcard is set to yes, an /etc/hosts file is created in the coprocessors file system,
containing the ‘IPaddress hostname’ pair of both the host (bridge) and of the coprocessor. If
modcard is set to no, the /etc/hosts will not be created. User may also provide a path to a file
which content will be copied to <vardir>/etc/hosts.
Note: The modhost and modcard options, if present, override the deprecated hosts parameter. The
hosts=(yes|no) option may still be used; setting is equivalent to setting modhost and modcard
with the specified (yes|no|<path_to_file>) value.
Although the static pair network configuration can be changed by editing micN.conf and
default.conf configuration files, the recommended method of changing the network
configuration is to use the micctrl --network command. Specifically, the micctrl --network
command will edit configuration files as needed to remove the current network configuration
before implementing the new configuration.
Linux* networking supports routing a static pair to the external network and or to another
static pair. It is the responsibility of the system administrator to configure such routing.
Initial Value:
<None>
Description:
Linux* provides a mechanism for bridging network devices to a common network. The term
“internal bridge”, in the context of Intel® Xeon Phi™ coprocessor, refers to a configuration in
which the host and one or more coprocessors on that host are connected through a bridge.
The same bridge name, <name>, must be given to both the Bridge and Network parameters.
<bridgeIP> and <cardIP> are the IP addresses of the bridge and coprocessor endpoints
respectively. The <netbits> argument to Bridge specifies the number of high order bits that
are set in the Netmask. The <bridgeIP> and <cardIP> must be identical over the high order
<netbits> bits. For example, if <netbits> is 24, then the Netmask is 255.255.255.0, and IP
addresses must be identical over the first three quads.
The <mtu> argument to Bridge specifies the packet size to use over the virtual network
connection. The value of 64k has been shown to provide the highest network performance.
If modhost is set to yes, the coprocessor’s 'IPaddress hostname' pair is appended to the host's
/etc/host file with the comment '#Generated-by-micctrl'. If modhost is set to no the entry
matching the coprocessor’s IP address with the comment '#Generated-by-micctrl' will be
removed from the host's /etc/hosts file.
If modcard is set to yes, an /etc/hosts file is created in the coprocessors file system,
containing the ‘IPaddress hostname’ pair of both the host (bridge) and of the coprocessor. If
modcard is set to no, the /etc/hosts will not be created. User may also provide a path to a file
which content will be copied to <vardir>/etc/hosts.
Note: The modhost and modcard options, if present, override the deprecated hosts parameter. The
hosts=(yes|no) option may still be used; setting is equivalent to setting modhost and modcard
with the specified (yes|no|<path_to_file>) value.
The resulting configuration files will use the Bridge parameters for <mtu> and <netbits>
values for the coprocessor endpoints.
The recommended method of changing the Bridge and Network parameters is to use the
micctrl --bridge and --network commands (see the micctrl section of this document), rather
than by directly editing. The --bridge and --network commands evaluate the current network
configuration and can remove it before creating the new one. In either case, all the network
control files will be created when the operation is done.
Initial Value:
<None>
Description:
The Linux* bridging mechanism can bridge the Intel® Xeon Phi™ coprocessor virtual
connections to a physical Ethernet device. In this topology, the virtual network interfaces
become configurable to the wider subnet.
The same bridge name, <name>, must be used in both the Bridge and Network parameters.
IP addresses of the bridge and coprocessor endpoints can be statically assigned or configured
for DHCP dynamic assignment.
The bridge IP address is assigned statically by specifying the <bridgeIP> argument to Bridge.
The <mtu> argument to Bridge specifies the packet size to use over the virtual network
connection. The default value is 1500 bytes to match default physical network settings. If
attaching to a pre-existing external bridge configuration, the specified mtu value must match
the setting in the system configuration file. For example, if, on a RHEL* based host, the
/etc/sysconfig/network-scripts/ifcfg-br0 file contains the line “MTU=9000”, then the MTU field
must be set to 9000 to match. The <netbits> argument to Bridge specifies the number of high
order bits that are set in the Netmask. It must be a value between 8 and 24. By default it is
set to 24 by default and will rarely need to be changed.
If modhost is set to yes, the coprocessor’s 'IPaddress hostname' pair is appended to the host's
/etc/host file with the comment '#Generated-by-micctrl'. If modhost is set to no the entry
matching the coprocessor’s IP address with the comment '#Generated-by-micctrl' will be
removed from the host's /etc/hosts file.
If modcard is set to yes, an /etc/hosts file is created in the coprocessors file system,
containing the ‘IPaddress hostname’ pair of both the host (bridge) and of the coprocessor. If
modcard is set to no, the /etc/hosts will not be created. User may also provide a path to a file
which content will be copied to <vardir>/etc/hosts.
Note: The modhost and modcard options, if present, override the deprecated hosts parameter. The
hosts=(yes|no) option may still be used; setting is equivalent to setting modhost and modcard
with the specified (yes|no|<path_to_file>) value.
The bridge IP address is configured for dynamic assignment by including value dhcp instead of
a static IP address in the Bridge parameter. The DHCP server will also assign the mtu and
Netmask values.
The modhost and modcard parameters are not required because it is assumed the IP address
for each coprocessor will be retrievable from a name server on the network.
If the corresponding bridge networking configuration file (ex: ifcfg-br0) does not exist then
this parameter will cause it to be generated.
The Intel® configuration will not generate or modify the physical interface file to attach the
physical network to the bridge. The system administrator must perform this step. For
example, on a RHEL* host, a file /etc/sysconfig/network-scripts/ifcfg-eth0 to link the eth0
interface to bridge br0 might have the following contents:
DEVICE=eth0
NM_CONTROLLED=no
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
On SLES* host platforms, the physical port name must be added to the BRIDGE_PORTS entry
in the /etc/sysconfig/networks/ifcfg-br0 configuration file, for example:
The recommended method of changing the Bridge and Network parameters is to use the
micctrl --bridge and --network commands (see the micctrl section of this document), rather
than by directly editing. The --bridge and --network commands evaluate the current network
configuration and can remove it before creating the new one. In either case, all the network
control files will be created when the operation is done.
UserAuthentication None
UserAuthentication Local <low uid> <high uid>
Description:
The UserAuthentication parameter has been removed. Refer to the sections on micctrl
specification of users for the coprocessors for configuration user access.
Note: This parameter is still functional but there are no longer default services using it. It may be
fully deprecated and removed in the future.
Description:
During boot, the embedded Linux* OS on the Intel® Xeon Phi™ coprocessor executes the
script files in the /etc/rc5.d directory. These entries are links to the actual script files in the
/etc/init.d directory. The links are named with the standard Linux* custom starting with an ‘S’
for start or ‘K’ for stop followed by the position parameter and then the file name from the
init.d directory. The position parameter is a number from 01 to 99 establishing the order in
which the scripts are executed.
The Intel® MPSS installs several pieces of software with various service scripts. The system
administration may not want all of them to start at boot. To support this functionality, the
configuration files specify the creation of the files in /etc/rc5.d based on the Service
configuration parameter. Each file in /etc/init.d will require a Service entry in an Intel® Xeon
Phi™ coprocessor configuration file.
The name argument is the name of the actual script found in the /etc/init.d directory.
The start argument defines the order the service start relevant to other scripts. It will be a
value from 1 to 99. As an example the network interface must be initialized before the secure
shell daemon can be started. The network script is assigned a start value of 21 and sshd is
assigned 80.
The stop argument is the opposite of the start parameter and is generally set to 100 minus
the start value. This will assure that on shutdown the secure shell daemon at 5 will shut down
before the network is unconfigured at 79.
The state argument determines whether the links specifies an ‘S’ for start or ‘K’ for stop. It
follows the chkconfig utility convention of on for start and off for stop.
Command is one of the commands documented in Appendix B.4 through Appendix B.4.8.
SubOptions is a space separated list of 0 or more suboptions. A suboption can be one of the
Global SubOptions described in Appendix B.3.1, or one of the Common SubOptions
documented in Appendix B.3.2 or a command-specific suboption described in the
documentation of the specified command. SubOptions list elements can appear in any order.
Coprocessors is a space separated list of 0 or more coprocessor identifiers of the form micN.
Coprocessors list elements can appear in any order. If the Coprocessors list is empty, and the
mic.ko driver is loaded, the command is applied to all discovered coprocessors. If the mic.ko
driver is not loaded, then the Coprocessors list must be non-empty.
Note: Providing invalid coprocessors’ identifiers will return an error message or may cause the
micctrl command to create unwanted configuration files.
For brevity, the command-specific syntax of each command in Appendix B.4 through
Appendix B.4.8 does not include GlobalOptions, Coprocessors or Global SubOptions. For
example, the syntax of the micctrl wait command is shown as:
micctrl (-w|--wait)
Note: Some aspects of network configuration are operating system dependent. By default, micctrl
performs network configuration operations according to the operating system of the local host.
The distrib suboption can be used to force micctrl to perform network configuration for a
specified operating system. It is typically used with other options such as --destdir and --
netdir when creating a configuration to be pushed to another system.
B.2.1 --destdir, -d
Option Syntax:
[(-d |--destdir=)<destdir>]
Description:
The --destdir global option, if specified, overrides the current value of the implicit $DESTDIR
variable.
We use the symbol $DESTDIR to indicate the directory path that micctrl prepends to all micctrl
accesses of micctrl created files.
B.2.2 --configdir, -c
Option Syntax:
[(-c |--configdir=)<confdir>]
Description:
The --configdir global option, if specified, overrides the current value of the implicit
$CONFIGDIR variable.
We use the symbol $CONFIGDIR to indicate the directory path at which micctrl creates Intel®
MPSS-specific configuration files, specifically default.conf and micN.conf.
B.3 Suboptions
Some suboptions are unique to each micctrl command; these are described with each of the
commands. Other suboptions are common to some or all commands.
micctrl (-s|--status)
rather than:
B.3.1.1 Help
Suboption Syntax:
[(-h |--help)]
Description:
The --help suboption cause micctrl to ignore all other options and output help for the specified
Command. For example to get help on the micctrl --initdefaults, use the -h option:
micctrl --initdefaults -h
Description:
The -v suboption causes micctrl to output additional informational messages. The -vv or -v -v
suboptions add notification of changes to all files micctrl is creating, deleting or changing. The
-vvv or -v -v -v suboptions add notification of calls to the host's networking utilities, for
instance: ifup.
For example, the syntax of the micctrl --rootdev command is given as:
The description of the micctrl --rootdev command does not include a description of the --vardir
suboption, which is common to several commands and is described in this section.
B.3.2.1 --vardir
Suboption Syntax:
[--vardir=<vardir>]
Description:
The --vardir suboption, if specified, overrides the current value of the implicit $VARDIR
variable.
We use the symbol $VARDIR to indicate the directory path at which the micctrl --initdefaults, -
-resetdefaults, --resetconfig, and --cleanconfig commands create the common and micN
overlay hierarchies, and at which the micctrl --rootdev command places a ramfs file system
image or NFS file system hierarchy. By default $VARDIR is /var/mpss.
B.3.2.2 --srcdir
Suboption Syntax:
[--srcdir=<srcdir>]
Description:
The --srcdir suboption, if specified, overrides the current value of the implicit $SRCDIR
variable.
We use the symbol $SRCDIR to indicate the directory path at which the micctrl --initdefaults,
--resetdefaults, --resetconfig, and --cleanconfig commands look for the coprocessor’s Linux*
kernel image and default file system image.
B.3.2.3 --netdir, -n
Suboption Syntax:
[(-n |--netdir=)<netdir>]
Description:
The --netdir suboption, if specified, overrides the current value of the implicit $NETDIR
variable.
We use the symbol $NETDIR to indicate the directory path at which the micctrl --initdefaults,
--resetdefaults, --resetconfig, and --cleanconfig commands create and/or edit network control
files.
B.3.2.4 --distrib, -d
Suboption Syntax:
[(-d |--distrib=)(redhat|suse)]
Description:
Some aspects of network configuration are operating system dependent. By default, micctrl
performs network configuration operations according to the operating system of the local host.
The --distrib suboption can used to force micctrl to perform network configuration for a
specified operating system. It is typically used with other options such as --destdir and --
netdir when creating a configuration to be pushed to another system.
B.3.2.5 --gw, -g
Suboption Syntax:
[(-g |--gw=)<gateway>]
Description:
The --gw suboption sets the gateway of a coprocessor network interface. If not specified, the
gateway of the local host is assigned to the network. The --gw option is typically used with
other options such as --destdir and --netdir when creating a configuration to be pushed to
another system.
B.3.2.6 --users, -u
Suboption Syntax:
[(-u |--users=)(none|overlay|merge|nochange)]
Description:
The --users suboption controls creation and/or modification of the /etc/passwd and
/etc/shadow files of each specified coprocessor. The MicDir parameter specifies the directory in
which these files are created and/or modified.
For --users=none, the /etc/passwd and /etc/shadow files are deleted and recreated to include
only the minimal set of users required by Linux*, which are the root, ssh, nobody, nfsnobody
and micuser.
For --users=overlay, the /etc/passwd and /etc/shadow files are deleted and recreated to
include the users from the 'none' option and any regular users found in the /etc/passwd file of
the host.
For --users=merge, any users in the host’s /etc/passwd file but not in the coprocessor’s
/etc/passwd file are added to the coprocessor’s /etc/passwd and /etc/shadow files.
B.3.2.7 --pass, -a
Suboption Syntax:
[(-a |--pass=)(none|shadow)]
Description:
The --pass suboption selects the policy for copying passwords from the host’s /etc/shadow file
to the specified coprocessor’s /etc/shadow file. For --users=none and --users=overlay, the
policy is applied to all users in the newly created /etc/shadow file. For --users=merge, the
policy is only applied to users that are added to the /etc/shadow file.
For --pass=shadow, the host's /etc/shadow file is parsed and values of the affected users are
written to the coprocessor’s /etc/shadow file. It should be noted that --pass=shadow is
disabled on SLES* host systems; SLES* uses Blow Fish encryption, which is not supported on
the coprocessor.
For --pass=none, the passwords in the coprocessor’s /etc/shadow file are set to the '*'
character.
If the --pass suboption is not given, behavior is as for --pass=shadow on a RHEL* based host,
and as for --pass=none on a SLES* based host.
B.3.2.8 --modhost, -c
Suboption Syntax:
[(-c |--modhost=)(yes|no)]
Description:
For --modhost=yes, the coprocessor’s 'IPaddress hostname' pair is appended to the contents
of the host's /etc/host file with the comment '#Generated-by-micctrl'.
Note: The --modhost suboption behaves as for --modcard=no if the configuration files already exist.
In this case, use the micctrl --modbridge or --network command to change the host’s
/etc/hosts.
B.3.2.9 --modcard, -e
Suboption Syntax:
[(-e |--modcard=)(yes|no|<path_to_file>)]
Description:
For --modcard=yes, an /etc/hosts file is created and populated in directory defined by the
MicDir parameter of each specified coprocessor.
The --modcard suboption behaves as for --modcard=no if the configuration files already exist.
In this case, use the micctrl --modbridge or --network command to change the host’s
/etc/hosts.
B.3.2.10 --nocreate
Suboption Syntax:
[--nocreate ]
Description:
By default, a home directory is created in the coprocessor file system for each user in a
coprocessor’s /etc/passwd and /etc/shadow files. The --nocreate suboption disables the
creation of such home directories. Doing so can reduce ram file system memory usage when
LDAP home directory auto mount is enabled or the /home directory is NFS mounted.
B.3.2.11 --pm, -p
Suboption Syntax:
[(-p |--pm=)(default|defaultb)]
Description:
The --pm suboption modifies the PowerManagement parameter of each specified coprocessor.
The $DESTDIR, $CONFIGDIR, $VARDIR, $SRCDIR and $NETDIR directory path modifiers can
alter the default directory paths of files which micctrl accesses. For brevity, the following
description assumes default values for these intrinsic variables. See Section 4.1.3 for details.
Description:
The micctrl --boot command requests that the specified Intel® Xeon Phi™ coprocessors be
booted. micctrl uses configuration parameters to prepare and boot coprocessors. The process
depends on the root device type specified by the RootDevice parameter. Refer to
Appendices A.4.1 and B.4.3 for details on root device types. Refer to Section 4.1.5 for a
detailed description of the boot process.
By default, control returns before booting is complete. If the --wait suboption is specified,
control returns after booting is complete, or after a timeout period, which ever is first.
If the --timeout suboption is specified, the timeout period is <timeout> seconds. If not
specified, timeout period defaults to 300 seconds.
Description:
The micctrl --shutdown command requests that the specified Intel® Xeon Phi™ coprocessors
be shut down.
This command brings down the specified coprocessors in a safe way, and is equivalent to
executing the Linux* shutdown command on each of the specified coprocessors.
By default, control returns before shutting down is complete. If the --wait suboption is
specified, control returns after shutting down is complete, or after a timeout period,
which ever is first.
If the --timeout suboption is specified, the timeout period is <timeout> seconds. If not
specified, timeout period defaults to 300 seconds.
Description:
The micctrl --reboot command requests that the specified Intel® Xeon Phi™ coprocessors be
rebooted. This command effectively performs the micctrl --shutdown followed by the micctrl --
boot command.
By default, control returns before rebooting is complete. If the --wait suboption is specified,
control returns after rebooting is complete, or after a timeout period, which ever is first.
If the --timeout suboption is specified, the timeout period is <timeout> seconds. If not
specified, timeout period defaults to 300 seconds.
Description:
The micctrl --reset command requests that the specified Intel® Xeon Phi™ coprocessors be
reset. The coprocessors can be in any state.
The --force suboption forces the coprocessors to go through the reset process. Normally the
driver will not reset a coprocessor that is already in the reset or 'ready' state and micctrl will
return an error.
The --ignore suboption prevents micctrl from returning an error if a coprocessor is in the reset
or ready state.
By default, control returns before resetting is complete. If the --wait suboption is specified,
control returns after resetting is complete, or after a timeout period, which ever is first.
If the --timeout suboption is specified, the timeout period is <timeout> seconds. If not
specified, timeout period defaults to 300 seconds.
Note: Performing a reset may result in the loss of file data that has not been flushed to a remote file
system. It is therefore recommended to perform a shutdown when this would not be desired.
Description:
The micctrl --wait command returns after the previous state change command is complete or
after a timeout period, which ever is first.
If the --timeout suboption is specified, the timeout period is <timeout> seconds. If not
specified, the timeout period defaults to 300 seconds.
micctrl (-s|--status)
Description:
The micctrl --status command displays the status of the specified Intel® Xeon Phi™
coprocessors. If the status is “online” or "booting" it also displays the name of the associated
boot image.
[(-d |--netdir=)<netdir>] \
[(-u |--users=)(none|overlay|merge|nochange)] \
[(-a |--pass=)(none|shadow)] [--nocreate] \
[(-c |--modhost=)(yes|no)] [(-e |--modcard=)(yes|no|<path_to_file>)]
Description:
The Intel® MPSS distribution does not include the software stack configuration files (For
Instance: default.conf, micN.conf) and overlay hierarchies (For Instance: /var/mpss/micN).
The micctrl --initdefaults command creates those files with default values, and can ensure that
they are complete.
Then, for each specified coprocessor, micctrl --initdefaults creates the /etc/mpss/micN.conf
configuration file with default parameters, if such a file does not already exist.
If such a default.conf or micN.conf file already exists, it is parsed for missing parameters, and
default parameter values are added as needed. In addition, --initdefaults checks for
deprecated parameters and replaces them with updated parameters. For example: the
deprecated FileSystem parameter is updated to RootDevice RamFS. micctrl --initdefaults will
not otherwise change an existing configuration if --users, --pass, --nocreate, --modhost, and
--modcard suboptions are not specified.
--initdefaults then creates the common directory /var/mpss/common and creates and
populates the per-coprocessor overlay hierarchy /var/mpss/micN for each specified
coprocessor if these directories do not already exist.
If a /var/mpss/micN overlay hierarchy exists, it is parsed for missing files, and any missing
files are added with values determined by the current configuration and micctrl --initdefaults
suboptions.
For each user indicated by the --users suboption, and subject to the --nocreate suboption,
--initdefaults copies ssh key files from the user’s host file system $HOME/.ssh to
/var/mpss/micN/$HOME/.ssh. Next --initdefaults adds the user’s .pub keys (For Instance:
from id_rsa.pub) to the /var/mpss/micN/$HOME/authorized_keys file.
Description:
The micctrl --resetdefaults command attempts to restore configuration parameters and the
associated Xeon Phi file systems to the default state. It shuts down the current network,
removes a several files in the /etc directory of each specified coprocessor, removes the old
configuration files and then calls the --initdefaults command. This process is intended to leave
files created by the user untouched.
The micctrl --cleanconfig command is intended to completely remove all Intel® MPSS
configuration artifacts.
1. Shutdown the network and remove micctrl created network configuration files typically in
/etc/sysconfig/network-scripts on RHEL* hosts and /etc/sysconfig/networks on SLES*
hosts.
2. Remove all the files in the directory defined by the MicDir configuration parameter.
Warning: this will also remove all the files in that directory not created by micctrl.
3. Remove the ramfs file or the NFS export directory associated with the NFS type in the
RootDevice configuration parameter.
4. Remove the configuration file in /etc/mpss directory (or the directory defined by
$CONFIGDIR).
5. If there are no more configuration files in the /etc/mpss directory, then remove the
contents of the directory defined by the CommonDir parameter and remove the
default.conf file from the /etc/mpss directory.
If no valid configuration file is found for a coprocessor, the following method of cleanup is
performed:
5. Delete the contents of the directory specified by the CommonDir parameter in the
/etc/mpss/default.conf file.
Description:
When the RootDev parameter type is either RamsFS or StaticRamFS, micctrl pushes a
compressed CPIO archive to coprocessor memory at boot time, where it is uncompressed to
become the coprocessor’s RAM file system.
For --rootdev=RamFS, micctrl sets the RootDevice parameter in the micN.conf of each
specified coprocessor to:
At boot time, micctrl builds a ram disk image from the files specified by the Base, CommonDir,
Micdir, and Overlay configuration parameters. The resulting archive is saved as
<ramfs_location>.
For --rootdev=StaticRamFS, micctrl sets the RootDevice parameter in the micN.conf of each
specified coprocessor to:
At boot time, there must be a previously created compressed CPIO archive at <ramfslocation>
which will be used as the ram disk with which to boot the specified coprocessor(s).
If the current RootDevice parameter type is NFS or SplitNFS when micctrl --RamFS or micctrl -
-StaticRamFS is called with the --delete suboption, then the root and/or user file system
hierarchies specified by the RootDevice configuration parameter are deleted.
Description:
When the RootDevice parameter type is either NFS or SplitNFS, the file system of the specified
coprocessors are remotely mounted from an NFS server(s).
For --rootdev=NFS, micctrl sets the RootDevice parameter in the micN.conf of each specified
coprocessor to:
<host>:<location>
if --target=<host>:<location>, or to:
<hostip>:<location>
if --target=<location>, or to:
<hostIP>:/var/mpss/micN.export
if --target is not specified, and where <hostIP> is the IP address of the local host.
For --rootdev=SplitNFS, micctrl sets the RootDevice parameter in the micN.conf of each
specified coprocessor to:
where <share> is set is as for --rootdev=NFS, and where <usr_share> is set to:
<host>:<usr_location>
if --usr=<host>:<location>, or to:
<hostip>:<usr_location>
if --usr=<location>, or to:
<hostIP>:/var/mpss/usr.export
if --usr is not specified, and where <hostIP> is the IP address of the local host.
It is the user’s responsibility to configure the specified or default location or locations for NFS
export, typically in the specified host’s /etc/exports file. Generally each export specification
should include rw and no_root_squash options.
If the --create suboption is specified, micctrl builds a root file system hierarchy from the files
specified by the Base, CommonDir, Micdir, and Overlay configuration parameters and roots it
at <share>. For --rootdev=SplitNFS, a file system hierarchy is also created and is rooted at
<usr_share> it is a duplicate of <share>/usr. These hierarchies are only created if <host> is
the local host. micctrl will not create these hierarchies on a remote host.
If the --delete suboption is specified, micctrl deletes the current root and user file system
hierarchies.
Note: A --server suboption was previously used to enable specification of the <server> IP
addressed. It has been deprecated and is only supported for backward compatibility.
micctrl --rootdev
Description:
When no type is specified, micctrl --rootdev outputs the current RootDevice configuration.
Description:
The micctrl --addnfs command adds an NFS mount entry, <host>:<location>, to the
/etc/fstab file of each specified coprocessor. The optional <host>, if specified, must be a valid
host name or host IP address. If <host> is not specified, it defaults to the local host.
The export will be mounted on the <mount dir> directory of each specified coprocessor.
micctrl ensures that the mount directory is created on the coprocessor file system image.
The --options suboption specifies a list of NFS mount options. It must be a comma separated
list in the standard form of the /etc/fstab fs_mntops field. Check NFS documentation for more
information. The string supplied is placed into the options field in the coprocessors /etc/fstab
file that micctrl creates for the added mount.
As with other NFS exports, it is the users responsibility to configure the specified <location>
for NFS export.
Additional configuration for SUSE* based host systems: If NFS file system mounts have
been added and the chckconfig utility has been used to indicate starting the Intel® MPSS at
host boot time, edit the /etc/init.d/mpss file and change the “# Required-Start:” line to read
“# Required-Start: nfsserver”.
Note: A --server suboption was previously used to enable specification of the <server> IP
addressed. It has been deprecated and is only supported for backward compatibility.
Description:
The 'micctrl --remnfs' command searches the /etc/fstab files of the specified coprocessors for
the entry corresponding to mount <mount dir>, and removes the mount point from the files.
micctrl --updateramfs
Description:
micctrl --updatenfs
micctrl --updateusr
Description:
When the RootDevice parameter of a specified coprocessor is SplitNFS, the micctrl --updateusr
command updates or builds a /usr file system hierarchy from the files specified by the Base,
CommonDir, Micdir, and Overlay configuration parameters and roots it at the location specified
by the RootDevice parameters <usr_share> value.
micctrl --base
micctrl --base=default
micctrl --base=(cpio|dir) --new=<location>
Description:
The micctrl --base command modifies the Base parameter in the /etc/mpss/micN.conf
configuration files of the specified coprocessors.
where <location> is a ram file system hierarchy. If <location> does not exist, and the current
base type is currently CPIO, then the corresponding CPIO image is expanded and files are
extracted to <location>. If <location> does not exist, and the current base type is DIR, then
the corresponding directory is copied to <location>.
For --base (For Example: a value is not specified), micctrl outputs the current base,
CommonDir and MicDir parameter values.
micctrl --commondir
micctrl --commondir=<commondir>
Description:
The micctrl --commdir command modifies the CommonDir configuration parameter for each
specified coprocessor.
CommonDir <commondir>
If the <commondir> directory does not exist, then it is created and the contents of the
previous CommonDir directory are copied to the new location.
After the files have been copied, the configurations for all known coprocessors in the host are
checked for references to the old CommonDir <commondir> directory. If no references exist,
the files in that directory are deleted.
For --commondir (For Example: <commondir> is not specified), micctrl outputs the current
Base, CommonDir and MicDir parameter values.
Note: Previously, this command included a suboption to set a corresponding filelist associated with
the files. The use of this file has been removed.
micctrl --micdir
micctrl --micdir=<micdir>
Description:
The micctrl --micdir command modifies the MicDir parameter in the /etc/mpss/micN.conf
configuration file of each specified coprocessor.
For --micdir=<micdir>, micctrl modifies the MicDir parameter in the micN.conf configuration
files of the specified coprocessors to:
MicDir <micdir>
If the <micdir> directory does not exist, it is created and the contents of the previous MicDir
directory are copied to the new location. Finally, the previous MicDir directory is deleted.
For --micdir (For Example: <micdir> is not specified), micctrl outputs the current Base,
CommonDir and MicDir parameter values.
Note: Previously, this command included a suboption to set a corresponding filelist associated with
the files. The use of this file has been removed.
micctrl --overlay
micctrl --overlay=(simple|file) (-s |--source=)<source> \
(-t |--target=)<target> (-d |--state=)(on|off|delete)
micctrl --overlay=rpm (-s |--source=)<source> \
(-d |--state=)(on|off|delete)
Description:
The micctrl --overlay command creates, modifies or deletes an Overlay parameter in the
/etc/mpss/micN.conf configuration file of each specified coprocessor. The Overlay parameter
describes a file or directory of files that are added to the coprocessors file system. There may
be multiple Overlay parameters.
Note: Do not add overlays to the /tmp directory on the coprocessor, as it is cleared during each
boot.
For --overlay (no overlay type specified), micctrl outputs the currently defined overlays.
You can also add Overlay parameters to a user created configuration file by directly editing the
file. The Include configuration parameter can be used to include such a file. micctrl does not
modify such user created configuration files. To override an Overlay parameter in such a
configuration file without editing the file, you can call micctrl --overlay to add an Overlay
parameter to micN.conf that changes the state of a specified overlay to off or on as needed.
Note: The filelist overlay type has been deprecated and is only supported for backward compatibility;
only files owned by root are supported. Use the simple and file overlay types instead.
Note: The state=off suboption has been deprecated and is only supported for backward
compatibility.
micctrl –-rpmdir=<location>
Description:
The micctrl --rpmdir command sets the K1omRpms configuration parameter in the micN.conf
configuration file of the specified coprocessors to the specified <location>. See Appendix A.4.3
for information on the K1omRpms parameter.
Note: On SUSE* hosts, run 1service networking restart upon completion of all network change
commands.
Description:
The micctrl --mac command modifies the MacAddrs configuration parameter in the micN.conf
configuration file of each specified coprocessor. The MacAddrs parameter defines the method
for setting the MAC addresses of both the host and coprocessor endpoints.
MacAddrs Serial
MacAddrs Random
For --mac=<MAC address>, and where <MAC address> is any valid MAC address in the
format XX:XX:XX:XX:XX:XX, and X is an ASCII hex digit (0..F), micctrl sets the MacAddrs
parameter of the first specified coprocessor to:
For example, if the least significant octet of <MAC address> is '08', then micctrl sets the
MacAddrs parameter of the first specified coprocessor to:
micctrl --network=default
Description:
The micctrl --network=default command restores the network configuration for the specified
coprocessors to the default (Static Pair).
Description:
The static pair network topology is configured using the micctrl --network command. This
topology is described in Section 2.2.3.1.
The micctrl --network command modifies the Network parameter of each specified
coprocessor. This command also creates and/or modifies host and coprocessor network
configuration files, and brings network endpoints on the host down and up as needed. That
process is described in detail in Section 5.1.5.1.2
When the --bridge suboption is not specified, the micctrl --network=static command
configures the static pair network topology between the host and each specified coprocessor.
There are several alternatives for setting IP addresses. If the --ip suboption is not given, then
IP addresses are as assigned by micctrl --initdefaults. Refer to Appendix A.5.3 for details.
If the --ip suboption is given and <ip> is two quads (XX.XX), then micctrl uses those as the
high order quads of IP addresses which it constructs. The third quad of each such address is N
+ 1 for each coprocessor with a name specified to micN. The fourth quad of each coprocessor
endpoint address is 1, and the fourth quad of each host endpoint address is 254. For
example, on a two coprocessor system, the suboption --ip=172.31 will result in addresses
172.31.1.1 and 172.31.1.254 for mic0’s coprocessor and host endpoints, and 172.31.2.1 and
172.31.2.254 for mic1’s coprocessor and host endpoints.
Fully qualified IP addresses can be assigned. In this case <ip> must have the format
cardIP,hostIP:cardIP,hostIP:… and so on. Each cardIP,hostIP pair specifies the IP address for
one static pair network, where the first pair is the IP address of the network between the host
and the first specified coprocessor. For example, if there are two cards in the system, the
suboption --ip=172.31.10.1, 172.31.10.2: 172.3.11.1,172.31.11.2 results in the first specified
coprocessor and host endpoints having addresses 172.31.10.1 and 172.31.10.2 and the
second specified coprocessor and host endpoints having addresses 172.31.11.1 and
172.31.11.2.
The --mtu suboption sets the virtual network packet size to <mtu> bytes. The default mtu
size of mtu is 64KB. Testing has shown that the default value yields the best performance for
this network type.
The --netbits suboption defines a netmask. If fully qualified IP addresses are assigned, the
addresses must be identical over the high order <netbits> bits. The default value is 24,
defining a netmask of 255.255.255.0. There is rarely any need to change this parameter.
Description:
The internal bridge network topology is configured using the micctrl --addbridge and --network
commands. This topology is described in Section 2.2.3.2.1. The bridge interface is created
first, and is then connected to the virtual network interfaces of each specified coprocessor.
--addbridge suboptions:
The micctrl --addbridge and --network commands modify the Bridge parameter common to all
specified coprocessors, and the Network parameter of each specified coprocessor. These
commands also create and/or modify host and coprocessor network configuration files, and
bring network endpoints on the host down and up as needed. That process is described in
detail in Section 5.1.5.2.2.
The micctrl --addbridge command creates the bridge interface. The bridge name, <brname>,
of the bridge must be specified. The --type=internal suboption causes micctrl to create the
correct network configuration files for an internal bridge.
The bridge IP address, <bridge_ip>, must be a fully qualified dot notated address.
The --mtu suboption sets the virtual network packet size to <mtu> bytes. The default mtu
size of mtu is 64KB. Testing has shown that the default value yields the best performance for
this network type.
The --netbits suboption defines a netmask. The bridge IP address and all coprocessor endpoint
IP addresses must be identical over the high order <netbits> bits. The default value is 24,
defining a netmask of 255.255.255.0. There is rarely any need to change this parameter.
micctrl --addbridge creates the bridge configuration file, for example $NETDIR/ifcfg-br0, if it
does not already exist. If the bridge configuration file already exists, then <bridge_ip>,
<netbits>, and <mtu> must match the corresponding values of the specified bridge.
--network suboptions:
The micctrl --network command adds coprocessor virtual network interfaces to the bridge.
The --bridge=<name> argument is required, and the <name> must be the same as the
<brname>, the name specified to --addbridge.
The bridge’s mtu and netbits values are used in configuring coprocessor virtual network
interfaces.
The micctrl --addbridge and --network commands modify the Bridge parameter common to all
specified coprocessors, and the Network parameter of each specified coprocessor. These
commands also creates and/or modifies host and coprocessor network configuration files, and
brings network endpoints on the host down and up as needed. That process is described in
detail in Section 5.1.5.3.2.
Because external bridging gives coprocessors access to the external network, DHCP based IP
address assignment is supported for this topology.
Command Syntax:
Description:
--addbridge suboptions:
For the static IP address assignment case, micctrl --addbridge and micctrl --network
commands are the same as for internal bridging with the exception that the bridge type is
external.
The --type=external suboption causes micctrl to create the correct network configuration files
for an external bridge.
The bridge IP address, <bridge_ip>, must be a fully qualified dot notated address.
The --mtu suboption sets the virtual network packet size to <mtu> bytes. The default mtu
size of mtu is 1500B for compatibility with typical external networks.
The --netbits suboption defines a netmask. The bridge IP address and all coprocessor endpoint
IP addresses must be identical over the high order <netbits> bits. The default value is 24,
defining a netmask of 255.255.255.0. There is rarely any need to change this parameter.
micctrl --addbridge creates the bridge configuration file, for example $NETDIR/ifcfg-br0, if it
does not already exist. If the bridge configuration file already exists, then <bridge_ip>,
<netbits>, and <mtu> must match the corresponding values of the specified bridge.
--network suboptions:
The micctrl --network command adds coprocessor virtual network interfaces to the bridge.
The --bridge=<name> argument is required, and the <name> must be the same as the
<brname>, the name specified to --addbridge. The --ip argument to --network is also
required, and <mic_ip> must be a fully qualified dot notated IP address in which the first 3
quads match those of the bridge IP address, <bridge_ip>. If more than one coprocessor is
specified, each will be assigned the specified <mic_ip> with the coprocessor’s number added
to the fourth quad. For example, for --ip=172.31.10.12, mic0 will be assigned the address
172.31.10.12 and mic1 will be assigned the address 172.31.10.13.
The bridge’s mtu and netbits values are used in configuring coprocessor virtual network
interfaces.
It is the user’s responsibility to slave the physical Ethernet endpoint to the bridge. For
example, on RHEL*, the line “BRIDGE=br0” is added to the eth0 Ethernet configuration file,
/etc/sysconfig/network-scripts/ifcfg-eth0 to connect endpoint eth0 to bridge br0:
DEVICE=eth0
NM_CONTROLLED=no
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
On SLES* host platforms, the physical port name must be added to the BRIDGE_PORTS entry
in the /etc/sysconfig/networks/ifcfg-br0 configuration file, for example:
Command Syntax:
Description:
--addbridge suboptions:
DCHP address assignment is configured by setting both the micctrl --addbridge command’s --
ip value and the --network type to dhcp. During coprocessor boot, the Intel® Xeon Phi™
coprocessor Linux* OS will attempt to retrieve an IP address from a DHCP server. The DHCP
server will also configure netbits and mtu values.
micctrl --addbridge creates the bridge configuration file, for example $NETDIR/ifcfg-br0, if it
does not already exist.
It is the user’s responsibility to slave the physical Ethernet endpoint to the bridge. For
example, on RHEL*, the line “BRIDGE=br0” is added to the eth0 Ethernet configuration file,
/etc/sysconfig/network-scripts/ifcfg-eth0 to connect endpoint eth0 to bridge br0:
DEVICE=eth0
NM_CONTROLLED=no
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
On SLES* host platforms, the physical port name must be added to the BRIDGE_PORTS entry
in the /etc/sysconfig/networks/ifcfg-br0 configuration file, for example:
Intel® Manycore Platform Software Stack (Intel® MPSS)
User's Guide December 2015
176
The micctrl Utility
The modhost and modcard parameters are not needed for configuring host and coprocessor
/etc/hosts files in the case that a name server is available from which coprocessor and host IP
addresses can be retrieved.
Description:
The micctrl --network command (with no network type specified) may be used to change the
parameters for a set of interfaces.
Description:
The micctrl --modbridge command modifies the IP address, netbits and/or MTU values of the
specified network bridge. In addition any changed netbits or MTU values are propagated to
any of the attached virtual network configuration files.
The --ip suboption sets the bridge’s IP address. <bridge_ip> must be a fully qualified dot
notated address.
The --mtu suboption sets the virtual network packet size to <mtu> bytes. The default mtu
size of mtu is 64KB. Testing has shown that the default value yields the best performance for
this network type.
The --netbits suboption defines a netmask. The bridge IP address and all coprocessor endpoint
IP addresses must be identical over the high order <netbits> bits. The default value is 24,
defining a netmask of 255.255.255.0. There is rarely any need to change this parameter.
Description:
The micctrl --delbridge command removes a specified bridge from the Intel® Xeon Phi™
coprocessor configuration. If the specified bridge is marked as internal, the corresponding
host network configuration file will be deleted.
All coprocessors must have been detached from the bridge before the bridge can be deleted.
The micctrl --network=default command can be used for this purpose.
micctrl --userupdate=(none|overlay|merge|nochange) \
[(-a |--pass=)(none|shadow)] [--nocreate]
Description:
The micctrl --userupdate command enables updating certain user credential information.
For --userupdate=none, the /etc/passwd and /etc/shadow files are recreated with the minimal
set of users required by Linux*, which are the root, ssh, nobody, nfsnobody and micuser.
For --userupdate=overlay, the /etc/passwd and /etc/shadow files are recreated with the users
from the --userupdate=none suboption and any regular users found in the /etc/passwd file of
the host.
For --userupdate=merge, any users in the host’s /etc/passwd file but not in the specified
coprocessor’s /etc/passwd file are added to the coprocessor’s /etc/passwd and /etc/shadow
files.
Description:
The micctrl --useradd command adds the user named <user> to the /etc/passwd and
/etc/shadow files in the directory identified by the MicDir parameter of each specified
coprocessor.
The --uid suboption specifies the user ID of user <user>. By default, the user ID of user
<user> on the host is used.
The --gid suboption specifies the group ID of user <user>. By default, the group ID of user
<user> on the host is used.
The --home suboption specifies the home directory in the coprocessor file system of user
<user>. By default, the home directory is /home/<user>.
The --comment suboption specifies a comment string to be added to the comment field of the
/etc/passwd entry for user <user>. The default comment string is <user>.
The --shell suboption replaces the default shell used to login. If it is not specified and user
exists on the host system shell will be copied from the host. Otherwise it will set The default to
/bin/bash shell.
The --sshkeys suboption specifies the host directory in which the user’s secure shell key files
are to be found. The default is /home/<user>/.ssh. The *.pub public SSH keys are copied to
the .ssh directory in the user’s home directory of the coprocessor file system.
The --non-unique suboption will allow the user to be added to the coprocessor’s /etc/passwd
and /etc/shadow files with the specified uid even if a user with that uid already exists.
A default .profile file is created in the user’s home directory of the coprocessor file system
home directory.
The user is also added to the /etc/passwd and /etc/shadow files of each specified coprocessor
that is in the online state. In addition, a home directory is created if the --nocreate suboption
is not specified, and the user’s SSH keys are pushed to the user’s home directory.
Description:
The micctrl --userdel command removes the user named <user> from the /etc/passwd and
/etc/shadow files in the directory identified by the MicDir parameter of each specified
coprocessor.
By default, --userdel does not remove the user’s home directory on the coprocessor; this is
intended to prevent the inadvertent removal of a user’s remote mounted home directory.
Home directory removal can be forced by including the --remove suboption.
B.4.6.4 Changing the Password for Users on the Intel® Xeon Phi™
Coprocessor File SystemCommand Syntax:
micctrl --passwd
Description:
The micctrl --passwd command changes a user’s password in the /etc/shadow file in the
directory identified by the MicDir parameter of each specified coprocessor.
A non-superuser calls micctrl --passwd with no name, and is prompted for the current
password and then for the new password.
The superuser specifies a user’s name, <user>, when calling micctrl --passwd. If the --stdin
suboption is not specified then micctrl will be prompted to provide a new password for a user
and to confirm it.
The -p --pass option was deprecated, superuser may use the --stdin suboption to pass a new
password in the standard input:
echo should be a shell built-in. If it resolves to /bin/echo the password may be visible to other
users.
The --stdin option is considered as less secure and should be used only in justified cases. It is
also advidsed to pass the password using pipe from different program.
The user account on each specified coprocessor that is in the online state will be updated with
the password.
B.4.6.5 Adding Groups to the Intel® Xeon Phi™ Coprocessor File System
Command Syntax:
Description:
The micctrl --groupadd command adds the specified group name and ID to the /etc/group file
in the directory identified by the MicDir parameter of each specified coprocessor.
The group will also be added to the /etc/group file of each specified coprocessor that is in the
online state.
B.4.6.6 Removing Groups from the Intel® Xeon Phi™ Coprocessor File
System
Command Syntax:
micctrl --groupdel=<name>
The micctrl --groupdel command removes the specified group name, along with its ID, from
the /etc/group file in the directory identified by the MicDir parameter of each specified
coprocessor.
The group will also be deleted from the /etc/group file of each specified coprocessor that is in
the online state.
micctrl --hostkeys=<keydir>
Description:
The micctrl --hostkeys command copies files from the <keydir> directory to the
$MICDIR/etc/ssh file of each specified coprocessor.
micctrl --initdefaults generates a set of ssh key files in the /etc/ssh directory of each specified
coprocessor, in the directory identified by the MicDir parameter. The keys in this directory
identify an Intel® Xeon Phi™ coprocessor as a “known host” during ssh operations if there is a
match to the user’s known_hosts file (typically in $HOME/.ssh).
Description:
The micctrl --sshkeys command copies a set of *.pub public ssh keys to the $HOME/.ssh
directory of some user in the file system of each specified coprocessor.
A non-root user does not specify a <user> to micctrl --sshkeys. All *.pub public keys are
copied to that user’s $HOME/.ssh directory. Key files are copied from <dir> if specified,
otherwise from the user’s $HOME/.ssh directory on the host. Only files owned by the user are
copied.
A root-user specifies a <user> to micctrl --sshkeys. Any *.pub Keys are copied to that user’s
$HOME/.ssh directory. Key files are copied from <dir> if specified, otherwise from the user’s
$HOME/.ssh directory on the host. Only files owned by the specified user are copied.
micctrl --sshkeys will also use add any *.pub files to the 'authorized_keys' file if not already
present.
Description:
The micctrl --ldap command configures the coprocessor to use LDAP for user authentication.
For --ldap=<server>, micctrl configures LDAP to use the <server> as the authentication
server and configures <domain> as the domain.
When this command is called, the K1omRpms configuration parameter must be set as needed.
Description:
The micctrl --nis command configures the coprocessor to use NIS for user authentication.
For --nis=<server>, micctrl configures NIS to use the <server> as the NIS/YP server and
configures <domain> as the domain.
When this command is called, the K1omRpms configuration parameter must be set as needed.
micctrl --osimage
micctrl --osimage=<osimage> (-s |--sysmap=)<sysmapfile>
Description:
The micctrl --osimage command sets the OSimage parameter in the micN.conf configuration
file of each specified coprocessor to <osimage> <sysmapfile>. The <osimage> argument is
the Linux* operating system image to be booted, and <sysmapfile> identifies the matching
system map file which holds values used by the mpssd daemon.
For --osimage (For Example: no <osimage> value is specified), micctrl outputs the current
OSimage parameter value for each specified coprocessor.
micctrl --autoboot
micctrl --autoboot=(yes|no)
Description:
The micctrl --autoboot command sets the BootOnStart configuration parameter to the
specified value.
For --autoboot (For Example: no --autoboot value is specified), micctrl outputs the current
BootOnStart value for each specified coprocessor.
micctrl --pm
micctrl --pm=(set|default|defaultb|off) [(-c |--corec6=)(on|off)] \
[(-t |--pc3=)(on|off)] [(-s |--pc6=)(on|off)] \
[(-f |--cpufreq=)(on|off)]
Description:
The micctrl --pm command sets the PowerManagement configuration parameter for each
specified coprocessor.
For --pm=set, the power management parameters are set as specified by the optional
arguments --corec6, --pc3, --pc6, and --cpufreq. Each optional parameter can be individually
enabled or disabled by setting the on or off values.
For --pm=default, the power management configuration is set to the default for each
coprocessor for which the stepping can be determined. If the stepping of a coprocessor cannot
be determined, its power management configuration is set to the default for C stepping Intel®
Xeon Phi™ coprocessors.
For --pm=defaultb, the power management configuration for each specified coprocessor is set
to the default for B stepping Intel® Xeon Phi™ coprocessors.
For --pm=off, all parameters other than cpufreq are set to the off state.
For --pm (For Example: no --pm value is specified), micctrl outputs the current Power-
Management value for each specified coprocessor.
Note: It is recommended to use the default power management settings unless directed by an Intel®
representative to change them.
Description:
The micctrl --cgroup command modifies the Cgroup parameter for each specified coprocessor
to value of the --memory suboption.
If the --memory suboption is not specified, micctrl outputs the current value of the Cgroup
parameter of each specified coprocessor.
micctrl –-syslog
micctrl –-syslog=buffer [(-l |--loglevel=)<loglevel>]
micctrl –-syslog=file [(-f |--logfile=)<location>] \
[(-l |--loglevel=)<loglevel>]
micctrl –-syslog=remote (-s |--host=)<targethost[:port]> \
[(-l |--loglevel=)<loglevel>]
Description:
The micctrl --syslog command creates and/or modifies the /etc/syslog-startup.conf file in the
filesystem of each specified coprocessor.
For --syslog=file, the syslog daemon logs to the optional <location> or to the
/var/log/messages log file.
For --syslog=remote, the syslog daemon is instructed to log to the remote node specified by
the optional host argument. The port value defaults to 514. If the --host suboption is not
specified then the remote host defaults to host:514.
For --syslog (no --syslog type is specified), the current syslog configuration is output.
Changes to the logfile location take effect immediately on each specified coprocessor that is in
the online state.
Note: micctrl --syslog only configures syslog on the coprocessor. Remote host may need additional
configuration. Please refer to the documentation of your host logger daemon to determine how
to enable collecting logs from remote hosts.
micctrl --service
micctrl --service=<name> --state=(on|off) [--start=<num>] \
[--stop=<num>] [mic card list]
Description:
The Intel® Xeon Phi™ coprocessor Linux* OS, like any Linux* OS, executes a series of scripts
on boot, which are located in /etc/init.d. To determine which of the installed scripts are
executed on any boot, links to these scripts are created in runlevel directory. The
coprocessor’s OS runs at level 5, defining the runlevel directory to be /etc/rc5.d.
On most Linux* systems, the service scripts to be executed are enabled or disabled using the
chkconfig command. On the Intel® MPSS this is performed by the micctrl --service command.
The --state suboption must be set to on or off and determines whether the script will execute
on boot. Services already included in the configuration may have their state changed without
specifying new start or stop values.
The start and stop parameters must be between 1 and 100, and determine the order in which
the services are executed. If stop is not specified, then it will be set to 100 – start.
Add on software containing a service script will include the Service parameter associated with
it. Modifying the default value included in its own configuration file will cause an overriding
entry to be set in the micN.conf file.
micctrl --service may be called with no arguments and will display a list of current service
settings. Currently, no services are configured by default.
Description:
This command has been removed. Refer to the section on the micctrl --userupdate command
for its functional replacement.
Description:
Changes to the configuration files are propagated with the micctrl --resetconfig command.
The --resetconfig command first removes the files in MicDir created by the configuration
process, with the exception of the highly persistent ssh host key files. It then regenerates
those files according to the parameters in the /etc/mpss/micN.conf and /etc/mpss/default.conf
files. This process will not add default parameters, but only causes the changed parameters to
be propagated. The --resetconfig command added several new options with the 3.2 release.
Consult the previous documentation for the --initdefaults command.
/sys/class/mic/ctrl/version
This entry is read-only. The version sysfs entry displays a string containing the ID of the build
producing the current installed software.
/sys/class/mic/ctrl/peer2peer
/sys/class/mic/ctrl/vnet
The peer2peer sysfs entry reports the state – enable or disable, of Symmetric Communication
Interface (SCIF) based communication between Intel® Xeon Phi™ coprocessors, referred to as
peer-to-peer (p2p) communication.
On reading, the vnet entry returns the number of active links to the virtual Ethernet.
/sys/class/mic/micN/family
/sys/class/mic/micN/sku
/sys/class/mic/micN/stepping
/sys/class/mic/micN/active_cores
/sys/class/mic/micN/memsize
The family node reports the Intel® Xeon Phi™ coprocessor family. At this time the family
should always report the string x100.
The sku node returns a string defining the device type, for example: C0-3120/3120A.
The stepping node returns the processor stepping, for example: B0, B1, or C0.
The active_cores node reports (base 16) the number of working cores on the coprocessor.
The memsize node returns the size of memory (in hexadecimal) on the Intel® Xeon Phi™
coprocessor.
/sys/class/mic/micN/state
/sys/class/mic/micN/mode
/sys/class/mic/micN/image
/sys/class/mic/micN/cmdline
/sys/class/mic/micN/kernel_cmdline
The state and cmdline nodes are read/write. The others are read-only.
Additionally, if the state is booting, online or shutdown, the state is modified by the
information from the mode and image sysfs nodes. The mode will be either linux or elf. The
image file will report the name of the file used to boot into the associated mode.
Writing to the state node requests the driver to initiate a change in state. The allowable
requests are to boot, reset or shutdown the Intel® Xeon Phi™ coprocessor.
To boot a coprocessor, the string to write has the format “boot:linux:<image name>”. The
mpssd daemon uses its OSimage parameter to fill in the image name. For example the default
Linux* image for the Intel® Xeon Phi™ coprocessor will create the string
“boot:linux:/usr/share/mpss/boot/bzImage-2.6.38.8”. After a successful boot the state will
indicate online, mode linux, and image /usr/share/mpss/boot/bzImage-2.6.38.8.
The cmdline parameter is set by user software, normally the mpssd daemon or micctrl utility,
to pass kernel command line parameters to the Intel® Xeon Phi™ coprocessor Linux* boot
process. Current parameters include root file system, console device information, power
management options and verbose parameters. When the state sysfs node requests the
coprocessor to boot, the driver adds other kernel command line information to the string and
records the complete string that was passed to the booting embedded Linux* OS in the
kernel_cmdline sysfs node.
C.2.3 Statistics
Sysfs Entries:
/sys/class/mic/micN/boot_count
/sys/class/mic/micN/crash_count
These entries are read-only. The boot_count sysfs node returns the number of times that the
Intel® Xeon Phi™ coprocessor has booted to the online state. The crash_count sysfs node
records the number of times that the coprocessor has crashed.
/sys/class/mic/micN/platform
/sys/class/mic/micN/post_code
/sys/class/mic/micN/scif_status
/sys/class/mic/micN/log_buf_addr
/sys/class/mic/micN/log_buf_len
/sys/class/mic/micN/virtblk_file
The platform, post_code and scif_status entries are read-only; the log_buf_addr, log_buf_len,
and virtblk_file entries are read and write.
The post_code sysfs node returns the contents of the hardware register containing the state of
the boot loader code. Reading it always returns two ASCII characters. Possible values of note
are the strings “12”, “FF” and any starting with the character ‘3’. A string of “12” indicates the
Intel® Xeon Phi™ coprocessor is in the ready state and waiting for a command to start
executing. A string of “FF” indicates the coprocessor is executing code. A string starting with
the character ‘3’ indicates the coprocessor is in the process of training memory. Any other
value should be transitory. Any other value remaining for any length of time indicates an
error and should be reported to Intel®.
The log_buf_addr and log_buf_len parameters inform the host driver of the memory address
in the Intel® Xeon Phi™ coprocessor memory at which to read its Linux* kernel log buffer.
The correct values to set are found by looking for the strings “log_buf_addr” and “log_buf_len”
in the Linux* system map file associated with the file in the OSimage parameter, and are
typically set by the mpssd daemon.
The virtblk_file sysfs node indicates the file assigned to the virtio block interface.
/sys/class/mic/micN/flashversion
/sys/class/mic/micN/flash_update
/sys/class/mic/micN/fail_safe_offset
These nodes are all read-only. The flashversion sysfs node returns the current version of the
flash image installed on the coprocessor by the micflash utility. The other two are used by the
micflash command. Root privileges are required to read flash_update and fail_safe_offset
entries.
/sys/class/mic/micN/pc3_enabled
/sys/class/mic/micN/pc6_enabled
The pc3_enabled node reports the current setting of the pc3 power management setting. If
pc3 power management is causing errors, writing a “0” to this setting will disable pc3 power
management.
The pc6_enabled node reports the current setting of the pc6 power management setting. If
pc6 power management is causing errors, writing a “0” to this setting will disable pc6 power
management.
/sys/class/mic/micN/extended_family
/sys/class/mic/micN/extended_model
/sys/class/mic/micN/fuse_config_rev
/sys/class/mic/micN/meminfo
/sys/class/mic/micN/memoryfrequency
/sys/class/mic/micN/memoryvoltage
/sys/class/mic/micN/model
/sys/class/mic/micN/stepping
/sys/class/mic/micN/stepping_data
These sysfs nodes are all read-only and return the contents of a particular hardware register.
They are used by the micinfo command.
D micrasd
micrasd is a Linux* host side daemon that monitors for and logs Intel® Xeon Phi™ coprocessor
hardware errors (MCEs). Normally, micrasd is run as a service:
START_WITH_SECURITY=true on /etc/mpss/micrasrelmond.conf
The micras service has a dependency on the mpss service. The micras service must be started
after the mpss service, and stopped prior to stopping the mpss service. To automatically start
the micras service in boot time, use the command:
Intel® Xeon Phi™ coprocessor hardware errors are logged into Linux* syslog under
/var/log/messages with the micras tag.
micrasd log messages are logged into /var/log/micras.log. These messages can be useful in
tracing micrasd functional flow for diagnostic purposes.
If micrasd is executed with no arguments, it runs at the console prompt, connects to devices,
and waits for errors. For more information about micrasd refer to:
E micnativeloadex
The micnativeloadex utility will copy an Intel® Xeon Phi™ coprocessor native binary to a
specified coprocessor and execute it. The utility automatically checks library dependencies for
the application. If they are found in the default search path (set using the
SINK_LD_LIBRARY_PATH environment variable), the libraries are copied to the coprocessor
prior to execution. This simplifies running Intel® Xeon Phi™ coprocessor native applications.
In addition, the utility can also redirect output from an application running remotely on the
Intel® Xeon Phi™ coprocessor back to the local console. This feature is enabled by default but
can be disabled with a command line option.
Note: If the application has any library dependencies, then the SINK_LD_LIBRARY_PATH
environment variable must be set to include those directories. This environment variable
works just like LD_LIBRARY_PATH for normal Linux* applications. To help determine the
required libraries, execute micnativeloadex with the -l command line option:
This will display the list of dependencies and which ones have been found. Any dependencies
not found will likely need to be included in the SINK_LD_LIBRARY_PATH.
The SINK_LD_LIBRARY_PATH must include the directory path for libcoi_host.so library
For example:
Note: When linking in libraries installed in /lib64, do not add /lib64 to the LD_LIBRARY_PATH
environment variable. This path is already implicit in the dynamic linker/loader's search path,
and modifying the path variable will result in breaking the order in which library paths are
searched for offload compilation.
F.1.1 Requirements
The following software components must be installed on the host.
apr
apr-devel
expat
expat-devel
gcc-c++
libconfuse
libconfuse-devel
libtool
rpm-build
rrdtool
rrdtool-devel
gcc-c++
libapr1
libapr1-devel
libconfuse0
libconfuse-devel
libexpat0
libexpat-devel
libtool
rpmbuild
rrdtool
rrdtool-devel
Note: For additional information on the installation of GANGLIA, consult the documentation at
http://ganglia.sourceforge.net
Note: The default path for the GANGLIA web page is /usr/share/ganglia. If the ganglia-web RPM was
installed, the files conf.php, get_context.php and host_view.php will be overwritten.
Steps:
[host]$ make
[host]# make install
7) Edit (as root) the host’s /etc/ganglia/gmond.conf and confirm that a udp_recv_channel is
defined and that it assigns a port value. For example:
udp_recv_channel {
: /*other parameters */
port = <port>
: /*other parameters */
}
If a udp_recv_channel is not defined, or if the port is not assigned, then define it. The
standard ganglia port is 8649:
udp_recv_channel {
: /*other parameters */
port = 8649
: /*other parameters */
}
8) Edit (as root) the host’s /etc/ganglia/gmetad.conf to configure the cluster name in the
"data_source" line. For example:
[host]# gmond
[host]# gmetad
13) Copy the web content under /usr/share/mpss/ganglia to the GANGLIA web path:
You can use any of the methods described earlier in this section to install Intel® MPSS Ganglia
RPMs into the coprocessor file system. In the example below we will use micctrl to add an
Overlay RPM parameter for each RPM:
2) The Intel® Xeon Phi™ coprocessor specific GANGLIA stack is started by executing:
There are two options to installing the Intel® Composer XE requirements. The first option is to
install the full Intel® Composer XE package and source the compilervars.sh or
compilervars.csh script at run time.
If the full composer installation is not available, then two packages can be used instead. The
required shared object libraries can be installed via the Intel ® Composer XE redistributable
package, freely distributed on the web at:
http://software.intel.com/en-us/articles/redistributable-libraries-for-the-intel-c-and-fortran-
composer-xe-2013-sp1-for-linux
This package has an install.sh script for installation. After installation, there are
compilervars.sh and compilervars.csh scripts which serve a similar purpose to those scripts in
the full Intel® Composer XE distribution and must be sourced at run time.
Besides the shared object libraries, the MKL Linpack benchmark is also a requirement. This is
also freely distributed on the web at:
http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download
This download is a tarball that can be unpacked anywhere, but the environment variable
MKLROOT must point to the top level directory of the untarred package. For instance, if the
user extracted the tarball into their home directory they should set MKLROOT as follows (in
Bash or Bourne shell):
If MKLROOT is set in the user's shell environment at run time, then micprun will be able to
locate the linpack binaries. The version of linpack linked above may be newer than 11.1.2, and
MKLROOT variable should reflect this.
2) MATPLOTLIB Requirements
The micpplot and micprun applications use the MATPLOTLIB Python module to plot
performance statistics. The micprun application only creates plots when verbosity is set to two
or higher, and it only requires MATPLOTLIB for this use case. MATPLOTLIB must be installed in
order to create plots. Download it from: matplotlib.sourceforge.net
$MPSS361/perf/micperf-3.*.rpm
$MPSS361/perf/micperf-data-3.*.rpm
The first of these packages contains everything except the reference performance
measurements, which are distributed in the second package.
[host]$ cd /usr/src/micperf/micp
[host]# python setup.py install
This method provides access to the micp package and executable scripts to all non-root users
who use the same Python version as the root user (sudoer). If Python is in the default location
and uses a standard configuration, setup.py installs the micp package to the directories:
/usr/bin
/usr/lib/pythonPYVERSION/site-packages/micp
/usr/src/micperf/micp-<version>/build
None of the products of running setup.py discussed above will be removed by uninstalling the
micperf RPMs. The installation with setup.py uses Python's distutils module, and this module
does not support uninstall. If installing on a Linux* system where Python is configured in a
standard way, it should be possible to uninstall with the following commands:
F.3.1 Requirements
Intel® MPSS and the micrasd daemon must be installed on each ode to be monitored. micrasd
is installed as part of normal software stack installation. Refer to Section 3.3.
The default path for the Reliability Monitor node configuration file is /etc/mpss.
Steps:
[host]$ cd $MPSS361/relmon
[host]# yum install mpss-sysmgmt-relmon-3.*.rpm
[host]$ cd $MPSS361/relmon
[host]# zypper install mpss-sysmgmt-relmon-3.*.rpm
Errors will be logged into Linux* syslog /var/log/messages. You can check the error log using:
Reliability Monitor is installed in /usr/bin. After relmon service is running, you can issue
commands to monitor node status and error information by using:
Download the mpss-src-3.6.1.tar file from the “SOURCE” link associated with your
Intel® MPSS release.
3) Extract mpss-ganglia-mpss.tar.bz2.
[host]$ cd $MPSS361_SRC
[host]$ tar xvf mpss-ganglia-mpss.tar.bz2
[host]$ cd mpss-ganglia-mpss
[host]$ make
mpss-modules-headers-3.6.1
glibc2.12.2pkg-libmicmgmt0-3.6.1
libscif0-3.6.1
libscif-dev-3.6.1
glibc2.12pkg-libmicmgmt-dev-3.6.1
asciidoc
[host]$ cd $MPSS361_SRC
[host]# tar xvf mpss-micmgmt-3.6.1.tar.bz2
[host]# tar xvf mpss-metadata-3.6.1.tar.bz2
[host]$ cd $MPSS361_SRC/mpss-micmgmt-3.6.1
[host]# cp ../mpss-metadata-3.6.1/mpss-metadata.mk miclib/
[host]# cp ../mpss-metadata-3.6.1/mpss-metadata.c miclib/
[host]# cp ../mpss-metadata-3.6.1/mpss-metadata.mk apps/mpssinfo
[host]# cp ../mpss-metadata-3.6.1/mpss-metadata.c apps/mpssinfo
[host]# cp ../mpss-metadata-3.6.1/mpss-metadata.mk apps/mpssflash
[host]# cp ../mpss-metadata-3.6.1/mpss-metadata.c apps/mpssflash
[host]# cp ../mpss-metadata-3.6.1/mpss-metadata.mk apps/micsmc
[host]# cp ../mpss-metadata-3.6.1/mpss-metadata.c apps/micsmc
6) Set the DESTDIR environment variable to the desired make install target path, for
example /usr/local.
A build directory will be created at $DESTDIR, and everything will be installed there.
[host]$ cd $MPSS361_SRC
[host]$ tar xvf mpss-metadata-3.6.1.tar.bz2
[host]$ tar xvf mpss-coi-3.6.1.tar.bz2
[host]$ cd mpss-coi-3.6.1
[host]# cp build/host-linux-[debug|release]/libcoi_host.so \
/usr/lib64/
[host]# cd /usr/lib64/
[host]# ln -s libcoi_host.so libcoi_host.so.0
[host]# cd $MPSS361_SRC/mpss-coi-3.6.1
[host]# scp build/device-linux-[debug|release]/coi_daemon \
micN:/usr/bin/coi_daemon
[host]# scp \
build/device-linux-[debug|release]/libcoi_device.so \
micN:/usr/lib64/libcoi_device.so
[host]# ssh micN
[host]# cd /usr/lib64/
[micN]# ln -s libcoi_device.so libcoi_device.so.0
[micN]# coi_daemon --coiuser=micuser&
[micN]# exit
Once installed, and now that the new coi_daemon is running, the new COI binaries and
libraries will be in use in the current running driver.
Building the COI stack also builds the COI tools. If you wish to install the newly built tools
coitrace and micnativeloadex, do the following:
1) Ensure all the Intel® Xeon Phi™ coprocessors are booted to the online state:
[host]$ micctrl -s
mic0: online (mode: linux image:
/usr/share/mpss/boot/bzImage-knightscorner)
Note: To run this command as user in SLES* it is necessary to add the directory /usr/sbin/micctrl to
user’s PATH variable.
2) Extract mpss-coi-3.6.1.tar.bz2:
[host]$ cd $MPSS361_SRC
[host]$ tar xvf mpss-coi-3.6.1.tar.bz2
[host]$ cd mpss-coi-3.6.1/src/tutorial/<coi_tutorial>
[host]$ make
[host]$ cd [debug|release]
[host]$ ./<coi_tutorial>_source_host
Extract the MYO archive to the desired directory with the following steps.
[host]$ cd $MPSS361_SRC
[host]$ tar -xf mpss-myo-3.6.1.tar.bz2
[host]$ cd mpss-myo-3.6.1
The mpss-myo-3.6.1/src/README text file explains the purpose, content, and use of the MYO
Open Source Distribution. It includes information about compiler selection, building and
installing the MYO libraries, MYO system requirements, and the MYO tutorials.
#!/bin/bash
# chkconfig: 2345 10 90
# ...
This tells the startup daemon in Linux* to shut down the service early (priority 10) and start
the service late (priority 90) when entering Linux* run levels 2, 3, 4, and 5. If a service A
depends on another service B the shutdown and startup priorities should reflect the relative
priorities sooner and later respectively:
#!/bin/bash
# Service B
# chkconfig: 2345 10 90
and:
#!/bin/bash
# Service A
# chkconfig: 2345 9 91
The priority increases in time for both shut down and startup of a service. Now service A will
start after service B and service B will shut down after service A.
When you have multiple dependencies make sure the new service’s shutdown time is the
minimum of the dependencies minus 1 and the start priority is max of dependencies + 1.
There is a tool for managing services runlevels and priorities called chkconfig. For more details
please see:
https://access.redhat.com/site/documentation/en-
US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-services-chkconfig.html
#!/bin/bash
# chkconfig: 35 75 54
# Description: Novell Identity Manager User Application
#
### BEGIN INIT INFO
# Provides: userapp
# Required-Start: $ndsd $network $time
# Required-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Novell IDM UserApp
# Description: Novell Identity Manager User Application
### END INIT INFO
Provides - The name used to identify this service in the init daemon
Default-Start - Space delimited list of run levels to start when transitioning run
levels
Default-Stop - Space delimited list of run levels to stop when transitioning run levels
To make sure the service start order is correct, pick the list of service dependencies and list
them on the Required-Start line. Make sure to fill in the start and stop run levels as
appropriate. Optionally list the services to stop after the service represented by this script.
Note: All names used for service reference must be the Provides name and not the file name of the
script.
http://www.novell.com/support/kb/doc.php?id=7002295
Coprocessor dmesg output can be viewed during coprocessor boot (or later) at
/sys/kernel/debug/mic_debug/micN/log_buf. For example:
micctrl --syslog=(buffer|file|remote) \
[--host=<targethost[:port]>] [--logfile=<location>] \
[--loglevel=<loglevel> [mic card list]
Of particular note is that syslog messages can be forwarded to the host or another node
(when the coprocessor is bridged to the external network). For this purpose, the targethost
syslog or rsyslog daemon must be configured for UDP reception on the specified port. On
RHEL* 6, uncomment the following line in /etc/rsyslog.conf:
For example:
The syslog or rsyslog daemon then typically must be restarted in order to pick up this new
configuration. On RHEL* 6, the rsyslog daemon is restarted as follows:
In this case the <targethost[:port]> defaults to host:514. See Appendix B.4.7.5 for more
details on the micctrl --syslog command.
If not using micctrl (configuring manually), edit the /etc/syslog-startup.conf file in the default
ramfs image. Consult BusyBox* documentation on the parameters in this configuration file.
The current POST code of a coprocessor can be obtained from its sysfs node:
"01" LIDT
"12" Wait for Coprocessor OS download - this is also known as the "ready" state. The
coprocessor will be in this state after powering on, running "micctrl -r" or
"1service mpss stop". It means that the coprocessor is ready to receive the
coprocessor OS either by a "1service mpss start", "1service mpss restart" or
"micctrl -b" depending on how the coprocessor got into this state. It is not an error
condition for the coprocessor to be in this state. See the sections above to learn how
to start Intel® MPSS when the coprocessor is showing POST code 12
Crash dump support is enabled by default. Edit the options line to disable support.
2) The mpssd daemon configuration options to tune crash dump storage location and storage
limit (gigabytes) are typically in the /etc/mpss/default.conf Intel® MPSS configuration file.
Edit the CrashDump parameter to change the crash dump storage location and limit.
3) If a coprocessor OS crash occurs, a gzipped kernel crash dump core file will be available at
the storage location configured in step 2.
4) Install the crash utility on the host to analyze the crash dump (RHEL* example shown):
[host]$ cd /var/crash/mic/mic0/
[host]# gunzip vmcore-xxxx.gz
[host]# cp /opt/mpss/3.6.1/sysroots/k1om-mpss-linux/boot/vmlinux-
2.6.38.8+mpss3.6.1 .
[host]# /opt/mpss/3.6.1/sysroots/k1om-mpss-linux/boot/x86_64-k1om-
linux-elfedit --output-mach x86-64 vmlinux-2.6.38.8+mpss3.6.1
[host]# crash vmlinux-2.6.38.8+mpss3.6.1 vmcore-2012-9-24-15\:50\:29
Refer to http://people.redhat.com/anderson/crash_whitepaper/#HELP
6) If a custom user space utility other than the mpssd daemon is being used, then a crash
dump can be obtained as follows:
b) Upon detection of the "lost" state, read from /proc/mic_vmcore/ and write the
contents to a crash dump file.
/opt/mpss/3.6.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-
linux/k1om-mpss-linux-gdb
The GDB Server is pre-installed in the coprocessor file system by default at:
/usr/bin/gdbserver
For complete GDB remote debugging instructions, refer to the section “Debugging Remote
Programs” in the GDB manual.
Ensure that the environment is set up correctly and that GDB finds the correct version of the
Intel® compiler's run-time support libraries. See the PROBLEMS-INTEL file in the GDB source
package for additional help on troubleshooting.
1) From the Eclipse* menu use "Help" -> "Install new Software".
2) Click on "Add...".
3) Click on "Local...".
6) Unselect the following two checkboxes: "Group items by category" and "Contact all
update sites during install...".
7) Select the plugin using the corresponding checkbox, then click “Next”.
8) Click “Next”.