XeonPhiDemo: an SDK sample for Intel Xeon Phi coprocessor harvesting

The XeonPhiDemo sample demonstrates how to use the coprocessor harvesting for IBM® Spectrum Symphony. This sample creates a simple IBM Spectrum Symphony session which creates parent tasks that run on x86_64 hosts. Each parent task creates a child session which creates child tasks that can be run on Intel Xeon Phi coprocessors.

The sample can run on complex cluster configurations using different Intel Xeon Phi network topologies. However, a single x86_64 Linux® host containing an Intel Xeon Phi coprocessor with default Static Pair topology is sufficient to build and run this sample.

The sample contains a client and two services:
Client
This sample contains a client, which will create a parent session dispatching Np parent tasks on x86_64 hosts. Each parent task will create a child session dispatching Nc child tasks that run on Intel Xeon Phi hosts. When the client starts, the system starts the corresponding service (DemoParentServiceOnHost). The service a client application uses is specified in the application profile. This sample builds two clients that can run on x86_64 or k1om:
  • x86_64 client : XeonPhiDemoClient_x64
  • Intel Xeon Phi client: XeonPhiDemoClient_k1om
You can specify the follow parameters to control your application:
Table 1. Parameters for controlling your client applications
Option Default Description
-p Np 2 Spawn Np parent tasks that run on the host
-s Nc 5 Spawn Nc child tasks per parent task
-i Ni 100000 Do Ni iterations of simulation per child task
-h Not applicable Display usage
Services
This sample contains the DemoParentServiceOnHost and DemoChildServiceOnAccel services:
  • DemoParentServiceOnHost: The service which runs the parent tasks on the x86_64 hosts only. This service invokes the DemoChildServiceOnAccel.
  • DemoChildServiceOnAccel: The service that runs the child tasks on the accelerators.