Difference between revisions of "MIC: Developers Quick Start Guide"

From Define Wiki
Jump to navigation Jump to search
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== External Link to the Intel® Xeon Phi™ Coprocessor Developer's Quick Start Guide ==
+
== External Links to the Intel® Xeon Phi™ Coprocessor Developer's Quick Start Guide ==
 +
[https://software.intel.com/en-us/articles/building-a-native-application-for-intel-xeon-phi-coprocessors Building a native application for Xeon Phi]
 +
 
 
[http://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-developers-quick-start-guide Developer's Quick Start Guide]
 
[http://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-developers-quick-start-guide Developer's Quick Start Guide]
  
Line 6: Line 8:
 
On compute020, copy ''openmp_sample.c'' from ''/shared/apps/intel/composerxe/Samples/en_US/C++/openmp_samples/'' to your home directory
 
On compute020, copy ''openmp_sample.c'' from ''/shared/apps/intel/composerxe/Samples/en_US/C++/openmp_samples/'' to your home directory
  
Build the application with the -mmicflag:
+
Build the application with the -mmic flag:
  > icc -mmic -vec-report3 -openmp openmp_sample.c
+
  icc -mmic -vec-report3 -openmp openmp_sample.c
  
 
Upload the binary to the coprocessor:
 
Upload the binary to the coprocessor:
  > scp a.out mic0:~/a.out
+
  scp a.out mic0:~/a.out
 +
 
 +
Find the dependencies of the application by setting the <tt>SINK_LD_LIBRARY_PATH</tt> and then running <tt>micnativeloadex</tt>. For example:
 +
export SINK_LD_LIBRARY_PATH=/opt/intel/composer_xe_2013_sp1.X.XXX/compiler/lib/mic/:/home/user1/myproject/:$LD_LIBRARY_PATH
 +
/opt/intel/mic/bin/micnativeloadex a.out -l
  
 
Copy over any shared libraries required by your application, in this case the OpenMP* runtime library:
 
Copy over any shared libraries required by your application, in this case the OpenMP* runtime library:
  > scp /shared/apps/intel/composerxe/lib/mic/libiomp5.so mic0:~/libiomp5.so
+
  scp /shared/apps/intel/composerxe/lib/mic/libiomp5.so mic0:~/libiomp5.so
  
 
Connect to the coprocessor with ssh and export the local directory so that the application can find any shared libraries it uses (in this case the OpenMP* runtime library):
 
Connect to the coprocessor with ssh and export the local directory so that the application can find any shared libraries it uses (in this case the OpenMP* runtime library):
  > ssh mic0
+
  ssh mic0
  > export LD_LIBRARY_PATH=/home/roshan
+
  export LD_LIBRARY_PATH=/home/roshan
  
 
This application may generate a segmentation fault if the stacksize is not set correctly. To modify the stacksize use:
 
This application may generate a segmentation fault if the stacksize is not set correctly. To modify the stacksize use:
  > ulimit -s unlimited
+
  ulimit -s unlimited
  
 
Go to /home/roshan and run a.out:
 
Go to /home/roshan and run a.out:

Latest revision as of 16:40, 6 January 2015

External Links to the Intel® Xeon Phi™ Coprocessor Developer's Quick Start Guide

Building a native application for Xeon Phi

Developer's Quick Start Guide

Native Compilation example

On compute020, copy openmp_sample.c from /shared/apps/intel/composerxe/Samples/en_US/C++/openmp_samples/ to your home directory

Build the application with the -mmic flag:

icc -mmic -vec-report3 -openmp openmp_sample.c

Upload the binary to the coprocessor:

scp a.out mic0:~/a.out

Find the dependencies of the application by setting the SINK_LD_LIBRARY_PATH and then running micnativeloadex. For example:

export SINK_LD_LIBRARY_PATH=/opt/intel/composer_xe_2013_sp1.X.XXX/compiler/lib/mic/:/home/user1/myproject/:$LD_LIBRARY_PATH
/opt/intel/mic/bin/micnativeloadex a.out -l

Copy over any shared libraries required by your application, in this case the OpenMP* runtime library:

scp /shared/apps/intel/composerxe/lib/mic/libiomp5.so mic0:~/libiomp5.so

Connect to the coprocessor with ssh and export the local directory so that the application can find any shared libraries it uses (in this case the OpenMP* runtime library):

ssh mic0
export LD_LIBRARY_PATH=/home/roshan

This application may generate a segmentation fault if the stacksize is not set correctly. To modify the stacksize use:

ulimit -s unlimited

Go to /home/roshan and run a.out: