Prominent features of the Intel® Manycore Platform Software Stack (Intel® MPSS) version 3.6

The Intel® Manycore Platform Software Stack (Intel® MPSS) version 3.6 was released on October 1st, 2015. This page lists the prominent features in this release.

Beta release of Heterogeneous Streams

Updated Development Environment

  • Updated compiler version to GCC 5.1
  • Updated glibc version
  • Added kernel and OFED headers to the SDK

Coprocessor Offload Infrastructure (COI)

  • New API to request runtime libraries to be downloaded from host to coprocessor
  • Added support for PIE binaries

Miscellaneous changes

  • Added mount helpers.
  • Added tcsh/csh packages
  • Mellanox OFED 2.4 compatibility

Heterogeneous Streams – Library Beta

Intel® Hetero Streams (hStreams for short) is a library that enables streaming for heterogeneous platforms; this library was originally introduced with Intel(R) MPSS 3.4 and Intel has continued to improve its features and quality based on user feedback.

One of the most prominent improvements in this Beta release is allowing users to create streams on the host. The hStreams interface is uniform regardless of whether the streaming is performed to the Intel® Xeon Phi™ coprocessor or the host, thus allowing existing codes to easily harvest the added parallelism and computational power with minimal changes. Also in this release, advanced control and interaction with memory resources is allowed through new APIs: hStreams_EnqueueDataXDomain1D supports transfers between arbitrary domains, easing multi-card usage and hStreams_Alloc1DEx which allows instantiation of the buffers to be created only in selected domains as well as assigning special properties to the buffers, so which enables lower memory physical usage and richer control. Finally, the beta release of hetero streams delivers thread safety of the hStreams APIs, enabling concurrent usage across host threads.


Improved Development Environment

MPSS 3.6 includes newer versions of tools that will modernize the development environment so programmers can benefit from new technologies such as C11.

Updated compiler version to GCC 5.1

Intel® MPSS 3.6 release brings an update of the GNU Compiler Collection for the coprocessor to the 5.1 version. This change allows running codes which leverage modern language features such as those from the C++11 standard.

Here's a small example of how features such as std::thread, lambdas and range-based for loops can be used.

#include <iostream>
#include <vector>
#include <thread>

int main()
    std::vector<int> ints{1,2,3,4,5,6};
    std::vector<std::thread> threads;
    for (auto i : ints) {
            std::cout << "My value is: " << i << std::endl;
    for (auto& t : threads) {

$ /opt/mpss/3.6/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux/k1om-mpss-linux-g++ -std=c++11 demo.cpp -pthread

$ micnativeloadex a.out

My value is: 1
My value is: 2
My value is: 3
My value is: 4
My value is: 5
My value is: 6


Updated glibc version

Glibc has been receiving a lot of recent changes, the k1om glibc version was updated to 2.21.

Added kernel and OFED headers to the SDK

The SDK now includes the kernel headers and the OFED header files. Those new additions allow an end user to create kernel modules and to add custom libraries that require OFED as a build time dependency.


Coprocessor Offload Infrastructure (COI)

New API to request runtime libraries to be downloaded from host to coprocessor: This releases introduces COISinkLoadLibrary () which allows an application running in the coprocessor to request the host for a runtime library. The API will ask the host to locate the desired library and to download it to coprocessor memory where the running application can load the library into its process space.

Added support to Position Independent Executable (PIE) binaries: COI now supports PIE binaries and can be loaded to the sink using COIProcessCreateFromFile and COIProcessCreateFromMemory API calls. Also, micnativeloadex tool supports the PIE binaries.


Miscellaneous Changes

Addition of mount helpers to the coprocessor filesystem. This allows the user to utilize the 'mount -t lustre' syntax instead of 'mount.lustre'

Added the tcsh shell to the prebuilt packages shipped for the coprocessor. Now is possible to ask micctrl to make changes of the default shell for any user.


For more complete information about compiler optimizations, see our Optimization Notice.

1 comment

bstauber's picture

Very useful information!

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.