Skip to content

Commit

Permalink
Committing Parallel STL 20180912 open source release
Browse files Browse the repository at this point in the history
  • Loading branch information
tbbdev committed Aug 29, 2018
1 parent c4231b8 commit 38aa8ab
Show file tree
Hide file tree
Showing 80 changed files with 4,776 additions and 3,808 deletions.
17 changes: 17 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
------------------------------------------------------------------------
The list of most significant changes made over time in Parallel STL.

Parallel STL release within Intel(R) Parallel Studio XE 2019
PSTL_VERSION == 200

Features / APIs:

- More algorithms support parallel and vector execution policies:
rotate.
- More algorithms support parallel execution policies:
includes, nth_element, remove, remove_if, unique.
- More algorithms support vector execution policies:
exclusive_scan, inclusive_scan, max_element, minmax_element,
min_element, reduce, transform_exclusive_scan, transform_inclusive_scan,
transform_reduce.
- Arranged types and variables naming: single- and double-underscore.
(by Thomas Rodgers).

------------------------------------------------------------------------
Parallel STL 20180619 release
PSTL_VERSION == 106

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Parallel STL
[![Stable release](https://img.shields.io/badge/version-20180619-green.svg)](https://github.com/intel/parallelstl/releases/tag/20180619)
[![Stable release](https://img.shields.io/badge/version-20180912-green.svg)](https://github.com/intel/parallelstl/releases/tag/20180912)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)

Parallel STL is an implementation of the C++ standard library algorithms with support for execution policies,
Expand All @@ -14,7 +14,7 @@ To use Parallel STL, you must have the following software installed:
* C++ compiler with:
* Support for C++11
* Support for OpenMP* 4.0 SIMD constructs
* Intel(R) Threading Building Blocks (Intel(R) TBB) which is available to download in the GitHub [repository](https://github.com/01org/tbb/)
* Threading Building Blocks (TBB) which is available to download in the GitHub [repository](https://github.com/01org/tbb/)

## Release Information
Here are the latest [Changes](CHANGES) and [Release Notes](doc/Release_Notes.txt) (contains system requirements and known issues).
Expand All @@ -28,10 +28,10 @@ Parallel STL is licensed under [Apache License Version 2.0](LICENSE).
## Support
Please report issues and suggestions via
[GitHub issues](https://github.com/intel/parallelstl/issues) or start a topic on the
[Intel(R) TBB forum](http://software.intel.com/en-us/forums/intel-threading-building-blocks/).
[TBB forum](http://software.intel.com/en-us/forums/intel-threading-building-blocks/).

## How to Contribute
Please, read the instructions on the official [Intel(R) TBB open source site](https://www.threadingbuildingblocks.org/submit-contribution).
Please, read the instructions on the official [TBB open source site](https://www.threadingbuildingblocks.org/submit-contribution).

## Engineering team contacts
* [E-mail us.](mailto:[email protected])
Expand Down
54 changes: 32 additions & 22 deletions doc/Release_Notes.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
------------------------------------------------------------------------
Parallel STL
Parallel STL
------------------------------------------------------------------------

System Requirements
-------------------

Parallel STL is available as a part of Intel(R) Parallel Studio XE 2018
and Intel(R) System Studio 2018.
Parallel STL is available as a part of Intel(R) Parallel Studio XE 2019
and Intel(R) System Studio 2019.

Parallel STL distributions are validated and officially supported
for the hardware, software, operating systems and compilers listed here.
Expand Down Expand Up @@ -40,8 +40,8 @@ Software - Minimum Requirements

Software - Recommended

Intel(R) Parallel Studio XE 2017, 2018
Intel(R) System Studio 2017, 2018
Intel(R) Parallel Studio XE 2018, 2019
Intel(R) System Studio 2018, 2019

Software - Supported Operating Systems

Expand All @@ -51,27 +51,24 @@ Software - Supported Operating Systems
Microsoft* Windows* 7 SP1
Microsoft* Windows* Server 2016
Microsoft* Windows* Server 2012 R2
Microsoft* Windows* Server 2008 R2 SP1
Windows* Embedded 10
Windows* Embedded 8.1
Systems with Linux* operating systems
CentOS 7.1
Debian* 8, 9
Fedora* 24, 25, 26
Fedora* 27
Red Hat* Enterprise Linux* 7
SuSE* Linux* Enterprise Server 12
Ubuntu* 14.04 LTS, 16.04 LTS, 17.04
Yocto 2.2, 2.3
Ubuntu* 14.04 LTS, 16.04 LTS, 18.04 LTS
Yocto 2.3
Systems with OS X* and macOS* operating systems
OS X* 10.10, 10.11
OS X* 10.11
macOS* 10.12, 10.13
Systems with Android* operating systems
Android* 5.x, 6.x, 7.x, 8.x

Software - Supported Compilers

Intel(R) C++ Compiler 16, 17 and 18 version
Note: Using Intel C++ Compiler 18.0 might result
Intel(R) C++ Compiler 17, 18 and 19 version
Note: Using Intel C++ Compiler 19.0 might result
in better performance for many of Parallel STL algorithms,
comparing to previous compiler versions.
Microsoft* Visual C++ 14.0 (Microsoft* Visual Studio* 2015,
Expand All @@ -83,19 +80,32 @@ Software - Supported Compilers
version provided with that operating system is supported
GNU Compilers (gcc) 4.8 - 7.1
Clang* 3.3 - 3.8
Xcode* 6.3 - 9.1
Xcode* 7.0 - 9.1
Android* NDK r13 - r16

Known Issues or limitations

unseq and par_unseq policies only have effect with compilers that
support '#pragma omp simd' or '#pragma simd'
Parallel and vector execution is only supported for a subset of
algorithms if random access iterators are provided, while for
the rest execution will remain serial.
Depending on a compiler, zip_iterator may not work with
unseq and par_unseq policies.

support '#pragma omp simd' or '#pragma simd'.
Parallel and vector execution is only supported for the algorithms
if random access iterators are provided, while for other iterator
types the execution will remain serial.
Semantics of the following algorithms does not allow unsequenced execution:
includes, inplace_merge, merge, set_difference, set_intersection,
set_symmetric_difference, set_union, stable_partition, unique.
The initial value type for exclusive_scan, inclusive_scan,
transform_exclusive_scan, transform_inclusive_scan shall satisfy
the DefaultConstructible requirements. A default constructed-instance
of the initial value type shall be the identity element for binary_op.
For max_element, min_element, minmax_element, partial_sort,
partial_sort_copy, sort, stable_sort the dereferenced value type of
the provided iterators shall be DefaultConstructible.
For remove, remove_if, unique the dereferenced value type of the provided
iterators shall be MoveConstructible.
The following algorithms require additional O(n) memory space for parallel
execution: copy_if, inplace_merge, partial_sort, partial_sort_copy,
partition_copy, remove, remove_if, rotate, sort, stable_sort, unique,
unique_copy.
------------------------------------------------------------------------

Intel, the Intel logo, Intel Core, Intel Atom, Xeon, Intel Xeon Phi,
Expand Down
7 changes: 2 additions & 5 deletions examples/convex_hull/readme.html
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ <h1 class="title">Parallel STL.<br>convex_hull sample</h1>
The example generates a set of random 2D points by <code>std::generate</code>. Then performs the quickhull algorithm on it.
Left and right most points are found by <code>std::minmax_element</code>.
On each step points on the right side of oriented line are copied by <code>std::copy_if</code> and the farthest point is found by <code>std::max_element</code>.
Correctness of the convex hull is checked by <code>std::any_of</code> algorithm with counting iterators.
Correctness of the convex hull is checked by <code>std::any_of</code> algorithm with counting iterator (Threading Building Blocks (TBB) 2019 is required).
The output of the example application is a CSV file with points of the convex hull.
</p>

Expand Down Expand Up @@ -362,10 +362,7 @@ <h1 class="title">Parallel STL.<br>convex_hull sample</h1>
<div class="h3-alike">Build instructions</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<p>To use Parallel STL, set up the environment by calling the <i><code>pstlvars</code></i> script (if you use a command line) or set the <code>%PSTLROOT%</code>
environment variable pointing to the <code>&lt;pstl_installdir&gt;</code> folder (in Microsoft* Visual Studio* IDE on Windows* OS)
and add the <code>&lt;pstl_installdir&gt;/pstl/include</code> folder to the compiler include paths.
</p>
<p>Read <a href="https://software.intel.com/en-us/get-started-with-pstl">Getting Started with Parallel STL</a> for general instructions on setting up and using Parallel STL.</p>
<p>Use the <a href="Makefile">Makefile</a> to build the example on the command line.</p>
<p>Use the <a href="msvs/convex_hull.sln">msvs/convex_hull.sln</a> project file to build the example in the Microsoft* Visual Studio* IDE (Windows* systems only).</p>
</div>
Expand Down
5 changes: 1 addition & 4 deletions examples/dot_product/readme.html
Original file line number Diff line number Diff line change
Expand Up @@ -357,10 +357,7 @@ <h1 class="title">Parallel STL.<br>Dot_product sample</h1>
<div class="h3-alike">Build instructions</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<p>To use Parallel STL, set up the environment by calling the <i><code>pstlvars</code></i> script (if you use a command line) or set the <code>%PSTLROOT%</code>
environment variable pointing to the <code>&lt;pstl_installdir&gt;</code> folder (in Microsoft* Visual Studio* IDE on Windows* OS)
and add the <code>&lt;pstl_installdir&gt;/pstl/include</code> folder to the compiler include paths.
</p>
<p>Read <a href="https://software.intel.com/en-us/get-started-with-pstl">Getting Started with Parallel STL</a> for general instructions on setting up and using Parallel STL.</p>
<p>Use the <a href="Makefile">Makefile</a> to build the example on the command line.</p>
<p>Use the <a href="msvs/dot_product.sln">msvs/dot_product.sln</a> project file to build the example in the Microsoft* Visual Studio* IDE (Windows* systems only).</p>
</div>
Expand Down
7 changes: 2 additions & 5 deletions examples/gamma_correction/readme.html
Original file line number Diff line number Diff line change
Expand Up @@ -366,14 +366,11 @@ <h1 class="title">Parallel STL.<br>Gamma_correction sample</h1>
<div class="h3-alike">Build instructions</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<p>To use Parallel STL, set up the environment by calling the <i><code>pstlvars</code></i> script (if you use a command line) or set the <code>%PSTLROOT%</code>
environment variable pointing to the <code>&lt;pstl_installdir&gt;</code> folder (in Microsoft* Visual Studio* IDE on Windows* OS)
and add the <code>&lt;pstl_installdir&gt;/pstl/include</code> folder to the compiler include paths.
</p>
<p>Read <a href="https://software.intel.com/en-us/get-started-with-pstl">Getting Started with Parallel STL</a> for general instructions on setting up and using Parallel STL.</p>
<p>Use the <a href="Makefile">Makefile</a> to build the example on the command line.</p>
<p>Use the <a href="msvs/gamma_correction.sln">msvs/gamma_correction.sln</a> project file to build the example in the Microsoft* Visual Studio* IDE (Windows* systems only).</p>
</div>
</div>
</div>


<div class="changes">
Expand Down
Loading

0 comments on commit 38aa8ab

Please sign in to comment.