Parallel Template Library (PTL)™
Software developers have many options to add parallelism to C/C++ applications (e.g. OpenMP,
Intel TBB, Boost), but high performance parallelism can also be achieved in pure .NET and
Java with Parallel Template Library (PTL)™.
PTL for Java 6 can also be used to add parallelism to
Traditional sequential software applications do not take advantage of multicore processors,
which are now the norm in personal computers, tablets and smart phones. With PTL, you can take
advantage of multicore and many-core processors to dramatically increase your software
PTL's functionality is split into several components, which are completely decoupled and sold
separately. PTL's components contain common standard library functionality that has been optimized
for parallelism and can be used for a wide variety of purposes.
||Simplifies the work of writing concurrent and asynchronous code through parallel
for loop and invoke methods.
||Parallel versions of many common algorithms that operate on ranges of arrays
(e.g. Transform, Compare, Accumulate, AdjacentDifference, InnerProduct, Find,
AdjacentFind, Search, Intersect, Union, Sort, etc.).
||Parallel versions of many common algorithms that operate on ranges of iterators
(same algorithms as the Array Algorithms component).
||32-bit and 64-bit containers that have been optimized for parallelism (e.g. List,
LinkedList, Map, Set, Queue, PriorityQueue, Stack, BitArray, BitList). The containers
contain parallel versions of many common methods (e.g. Add, Assign, Contains, CopyTo,
Equals, Erase, IndexOf, Insert, Remove, RemoveAt).
||Very large, persistent 32-bit and 64-bit containers (e.g. Index, List, Map, Set)
that can be used as a data repository for applications and contain parallel versions
of common methods (e.g. Add, Assign, Contains, CopyTo, Equals, Erase, IndexOf, Insert,
||Matrix containers that are optimized for parallelism and parallel versions of common
matrix operations (e.g. Add, Transform, Multiply).
Gain Performance Without Losing Productivity
Developers can quickly add parallelism to their applications by maintaining their
sequential thinking and use of high-level programming languages. PTL is 100% C#
and Java, so developers don't need to learn or use new syntax or code annotations.
Gain Performance Without Parallel Programming Expertise
PTL obtains maximum performance for the current system and does not depend on the
developer’s skills. PTL isolates developers from the complexity of the parallel
programming (e.g. threads, locking, synchronization, cache coherency).
Continue to Gain Performance on
Prepare your application to automatically take advantage of future multicore and
many-core processors. PTL's innovative load balancing techniques allow it to scale
dynamically with the number of available processor cores.