Memory Management in Parallel Template Library (PTL) Containers

PTL's Containers component offers powerful data containers with a superior architecture that results in better memory management and increased performance.

In this demo, we compare a .NET List to a PTL List64 container. We add from 100 million to 1.1 billion elements to both containers to show how PTL uses memory much more efficiently. We also retrieve all elements from both containers to prove that random access performance was not sacrificed to implement PTL's superior memory management scheme.

Parallel Template Library (PTL) - General

Parallel Template Library (PTL) Overview

PTL simplifies parallel performance for .NET and Java developers because it achieves high performance parallelism while still being generic and easy to use.

It offers many innovations such as a superior memory management scheme, fast access to data through its efficient implementation of iterators and superior load balancing techniques.


Parallel Sort and Reverse in Parallel Template Library (PTL) Algorithms

PTL differs from the .NET and Java standard libraries because it offers parallel versions of many useful algorithms, which take advantage of multicore processors to greatly improve performance.

In this video, we demonstrate the performance of PTL's Sort and Reverse algorithms using a .NET List and a PTLArray container. On a quad-core processor, PTL's Parallel Sort was 4.5 times faster than the sequential Sort of the .NET List, and PTL's Parallel Reverse was 109 times faster than the sequential Reverse of the .NET List.


.NET SortedDictionary vs. PTL Map32 - Add, Item & Remove Functions

PTL's containers have been optimized to sustain large data sets. In this video, we demonstrate the performance of PTL's map container (Map32) for large data sets by comparing it to the equivalent .NET SortedDictionary container.

We add, retrieve and remove 100 million elements (which consist of a key and a value) from both map containers on a system with a quad-core processor and 32 GB of memory. PTL's Map32 inserted elements 3.8 times faster, retrieved elements 2.1 times faster and erased elements 2.8 times faster than .NET's SortedDictionary.


.NET Matrix Multiplication Demo

PTL for .NET is used to compute the product of two large, dense matrices. The PTL parallel solution is 211.2 times faster than a traditional, sequential .NET solution (on a system with 12 processor cores).

Java Matrix Multiplication Comparison

PTL's Java matrix operations are compared to three popular Java linear algebra libraries — Linear Algebra for Java (la4j), Efficient Java Matrix Library (EJML) and Parallel Colt — using a matrix multiplication example.