Welcome to the Documentation section! Here you can find examples of how to use parallel collections, information about how this framework works, as well as larger application examples. If you would like to start from the beginning, go to the Getting Started section, otherwise, pick one of the sections below.
Getting started
The definite place to get started with using parallel collections. Includes a basic introduction, some simple examples and tips on what to watch out for when using parallel collections.
Design overview
This section describes the overall design of parallel collections. It introduces zippable and reducables, stealers and mergers, and kernels and schedulers.
Sequential optimizations
This section describes the optimize block, used to speed up bulk operations on sequential Scala collections.
Parallel collections classes
The choice of a particular parallel collection can have a noticeable impact on performance. This section contains a comprehensive overview of different parallel collections classes describing their performance characteristics and internals.
Scheduler configuration
While the parallel collection schedulers have good performance irregardless of the workload, they are highly configurable. This section describes how you can set parallelism levels, granularities, scheduling policies, parallel execution thresholds and much more to tune the scheduler to the specifics of your application, if necessary.
Extending the framework
This section contains detailed information on extending parallel collections with custom collections, adding custom parallel operations and using the ScalaBlitz framework as a backend for your own data-parallel API or framework.
Example applications
This section contains several larger benchmark examples, a detailed walkthrough on how to parallelize these applications using parallel collections, and a performance evaluation for each example.
API reference
The API reference is a definitive source of information on the specific data-parallel operations and collections, as well as the internals of the framework.
Performance evaluation
ScalaBlitz are being evaluated on a per-commit basis on a wide of different microbenchmarks and several larger benchmark applications. The evaluation is performed on several platforms with different performance characteristics. This section contains quantitative insight on when parallelizing operations is beneficial and to what extent.