Official library for the MPL compiler for Parallel ML. MPL extends Standard ML with support for (nested) fork-join parallelism, and has excellent multicore performance. This library contains a variety of parallel algorithms, data structures, and utilities, including:
- sequences, sets, dictionaries, matrices, concurrent collections
- sorting, searching, shuffling
- text processing (tokenization, string search)
- images (
.ppm
,.gif
formats) - graph processing (CSR and edge list formats)
- audio (signal processing and
.wav
format) - computational geometry (nearest neighbors, meshes, triangulation, convex hull)
- command-line arguments
- benchmarking
- and more...
To see these in action, check out the Parallel ML benchmark suite.
This library is compatible with the
smlpkg
package manager.
$ smlpkg add github.com/mpllang/mpllib
$ smlpkg sync
And then add one of the following .mlb
source files to your project.
Two source files:
lib/github.com/mpllang/mpllib/sources.mpl.mlb
lib/github.com/mpllang/mpllib/sources.mlton.mlb
The former is for use with MPL, the latter with MLton.
Primitives for parallelism and concurrency
- structure
ForkJoin
- structure
Concurrency
Files and Command-line Arguments
- structure
ReadFile
- structure
CommandLineArgs
Sequences
- structure
Seq
- structure
ArraySequence = Seq
- structure
DelayedSeq
- structure
SeqBasis
Sorting and Permutations
- structure
Merge
- structure
StableMerge
- structure
StableSort
- structure
Mergesort
- structure
SampleSort
- structure
CountingSort
- structure
Quicksort
- structure
RadixSort
- structure
Shuffle
Searching
- structure
BinarySearch
- structure
FindFirst
Graphs
- functor
AdjacencyGraph
Geometry
- structure
Geometry2D
- structure
Geometry3D
- structure
Topology2D
- structure
MeshToImage
- structure
NearestNeighbors
Images
Audio
- structure
NewWaveIO
- structure
Signal
Text
- structure
Tokenize
- functor
MkGrep
Matrices
- structure
TreeMatrix
Augmented Maps
- functor
PAM
Collections
- structure
Hashset
- structure
Hashtable
- functor
ChunkedTreap
- structure
ParFuncArray