GithubHelp home page GithubHelp logo

haibo031031 / hetero-streams Goto Github PK

View Code? Open in Web Editor NEW

This project forked from intel/hetero-streams

0.0 2.0 0.0 7.3 MB

hetero-streams

License: GNU Lesser General Public License v2.1

Makefile 3.96% Shell 1.11% TeX 2.22% Batchfile 0.78% Python 0.20% XSLT 0.08% C++ 87.97% C 3.68%

hetero-streams's Introduction

Hetero Streams Library

Hetero Streams Library supports a task-based parallelism programming model in which tasks are submitted for asynchronous execution in streams.


Brief explanation of directory tree of source code distribution of the Hetero Streams Library.

Directory Description
./include External API declarations for the library (header files).
./ref_code Root of tree of reference code samples.
./src Root of source code directory of hStreams
./doc Documentation collateral

Requirements

Intel(R) Manycore Platform Software Stack recommended version is 3.7. If using Intel(R) MPSS in version prior to 3.7 see Using Hetero Streams Library with Intel(R) Manycore Platform Software Stack prior to version 3.7 section.

Linux*

Name of Tool Supported version
Intel(R) Manycore Platform Software Stack 3.4, 3.6
Intel(R) C++ Compiler 15.0, 16.0
Intel(R) Math Kernel Library 11.2, 11.3
Doxygen 1.6.3
Artistic Style 2.05
pdflatex texlive-latex-bin-bin-svn14050.0-32.20130427_r30134.el7.noarch

Windows*

Name of Tool Supported version
Intel(R) Manycore Platform Software Stack 3.4, 3.6
Intel(R) C++ Compiler 15.0, 16.0
Intel(R) Math Kernel Library 11.2, 11.3
Doxygen (Optional1) 1.6.3
MiKTeX (Optional1) 2.9
Wix (Optional2) 3.10
Visual Studio 11.0 (2012)

Building and installing the Hetero Streams Library

Linux*

Set up the Intel (R) C++ Composer XE environment using commands like this:

$ source /path/to/your/composer/directories/bin/compilervars.sh intel64

Build Hetero Streams Library using the command in root directory of repository:

$ make artifacts

The make should generate RPMs in the rpmbuild/ directory:

$ tree rpmbuild/*RPMS/
rpmbuild/RPMS/
└── x86_64
    ├── hstreams-1.0.0.DEVBOX-1.x86_64.rpm
    ├── hstreams-debuginfo-1.0.0.DEVBOX-1.x86_64.rpm
    ├── hstreams-devel-1.0.0.DEVBOX-1.x86_64.rpm
    └── hstreams-doc-1.0.0.DEVBOX-1.x86_64.rpm
rpmbuild/SRPMS/
└── hstreams-1.0.0.DEVBOX-1.src.rpm

These RPMs can be installed using your favourite package manager, e.g. rpm:

$ sudo rpm -ihv rpmbuild/RPMS/x86_64/hstreams-*
Preparing...                          ################################# [100%]
Updating / installing...
   1:hstreams-1.0.0.DEVBOX-1          ################################# [ 25%]
   2:hstreams-devel-1.0.0.DEVBOX-1    ################################# [ 50%]
   3:hstreams-doc-1.0.0.DEVBOX-1      ################################# [ 75%]
   4:hstreams-debuginfo-1.0.0.DEVBOX-1################################# [100%]

Windows*

Build with installer and documentation
  1. Open hstreams_source.sln placed in root of project.
  2. Add MiKTeX (make sure that is pointing to bin directory in MiKTeX installation folder) and Doxygen to PATH.
  3. Run build solution in visual studio. Make sure selected configuration is Release/x64.
  4. Run HeteroStreamsLibrary-1.0.0.msi and follow the instructions in the installer.
Build without installer and documentation
  1. Open hstreams_source.sln placed in root of project.
  2. Unload hstreams_documentation and hstreams_installer project in hstreams_source solution.
  3. Run build solution in visual studio. Make sure selected configuration is Release/x64.
  4. Include library to your project using headers from include directory and binaries from bin directory.

Building and running reference code sample applications.

Before starting this procedure, first make sure that you have followed the above procedure: Building and installing the Hetero Streams Library

Next, there is a collection of reference code sample applications in this source code distribution. To build and run each, there are separate README files that provide instructions on building them and running them:

$ cd ref_code
$ find . -name README.txt
  ./basic_perf/README.txt
  ./cholesky/README.txt
  ./io_perf/README.txt
  ./lu/README.txt
  ./matMult_host_multicard/README.txt
  ./matMult/README.txt
  ./windows/basic_perf/README.txt
  ./windows/cholesky/README.txt
  ./windows/io_perf/README.txt
  ./windows/lu/README.txt
  ./windows/matMult/README.txt

Follow the instructions in those files.

Using Hetero Streams Library with Intel(R) Manycore Platform Software Stack prior to version 3.7

Hetero Streams Library code was included in Intel(R) Manycore Platform Software Stack releases 3.4 through 3.6. Some files from those versions may interfere with newest version and must be removed or renamed manually.

####Clean previous version artifacts on Linux*

Previous host-side Hetero Streams Library packages will be removed automatically on newest version installation. However, the mpss-sdk-k1om package contains headers which might be picked up by the compiler when generating k1om binaries.

Run the command below to prevent headers conflict, replacing 3.6.1 with the appropriate Intel(R) MPSS version:

# rename ".h" ".h.bak" /opt/mpss/3.6.1/sysroots/k1om-mpss-linux/usr/include/hStreams_*.h

In case you should need these headers back for any reason, the following command will restore them:

# rename ".h.bak" ".h" /opt/mpss/3.6.1/sysroots/k1om-mpss-linux/usr/include/hStreams_*.h.bak

####Clean previous version artifacts on Windows*

In order to rename the headers, please run the following command:

# pushd "C:\Program Files\Intel\MPSS\k1om-mpss-linux\usr\include\"
# rename hStreams_*.h hStreams_*.h.bak

Windows* DLL search order depends on system configuration; to make sure that the old version of the Hetero Streams Library will not be used, these files should be renamed or removed:

C:\Windows\System32\hstreams_source.dll
%INTEL_MPSS_HOME%\sdk\lib\hstreams_source.lib

%INTEL_MPSS_HOME% is by default: C:\Program Files\Intel\MPSS\

Please keep in mind that a repair of the Intel(R) MPSS installation will restore these files.


*Some names and brands may be claimed as the property of others

Footnotes

  1. Need to build documentation 2

  2. Need to build installer

hetero-streams's People

Contributors

elkoper avatar jdlugole avatar

Watchers

James Cloos avatar Jianbin Fang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.