Trumphurst Home Page
Available C++ Libraries FAQ
Libraries available to download (Q-Z)
YAPL - Yet Another Parallel Library
YAPL (Yet Another Parallel Library) is a small experimental prototype implementation to illustrate some ideas about parallel libraries. It is a header-only library at present.
YAPL design principles:
The library is designed as an experimentation framework for containers and algorithms.
- User code should be the same in sequential and parallel modes. This ideal is not always achievable, but differences are minimized.
- There should be a clear separation between a container abstraction (a list of values) and its supporting implementation structure (e.g., a linked list of nodes or a vector.).
- For element access, YAPL uses mappings (a generalization of ranges). It does not use the C++ standard library iterators because iterators are inherently sequential.
- It should be easy to select the execution policy for an application (sequential, parallel, GPU, …).
The library offers components in five categories:
- CONTAINER – provides a minimal interface for the container abstraction. A key property of a container is that it provides mechanisms for generating mappings to that container;
- SUPPORT STRUCTURE – implements a concrete strategy that can be used by multiple containers;
- MAPPING – provides an interface to operate on a subset of container elements. Different subsets may be generated through different defining criteria;
- ALGORITHM – an operation that can be applied to any mapping;
- POLICY – allows the programmer to configure how operations are sequenced and elements allocated.
- All platforms that support ANSI C++ and PThreads
- Any standard C++ compiler
Added : 2015-10-26 Amended: 2015-10-26 Licensing : Copyrighted freeware
Add a comment
Beat the credit crunch - buy gold online - quickly, safely and at low prices
C++ Usenet Newsgroup
A Web form for submissions to this list
Contact the author for permission to distribute
Copyright (c) 2017 Nikki Locke, Trumphurst Ltd.
Permission is granted to distribute over the Internet without charge.
The author's permission is required (and usually given) to distribute
in any other way, including on CD.