dph-prim-par-0.7.0.1: Data Parallel Haskell segmented arrays. (production version)

Safe HaskellNone

Data.Array.Parallel.Unlifted.Distributed.Primitive.DPrim

Description

Distribution of values of primitive types.

Synopsis

Documentation

class Unbox e => DPrim e whereSource

For distributed primitive values, we can just store all the members in a vector. The vector has the same length as the number of threads in the gang.

Methods

mkDPrim :: Vector e -> Dist eSource

Make an immutable distributed value.

unDPrim :: Dist e -> Vector eSource

Unpack an immutable distributed value back into a vector.

mkMDPrim :: STVector s e -> MDist e sSource

Make a mutable distributed value.

unMDPrim :: MDist e s -> STVector s eSource

Unpack a mutable distributed value back into a vector.

primIndexD :: DPrim a => String -> Dist a -> Int -> aSource

Get the member corresponding to a thread index.

primNewMD :: DPrim a => Gang -> ST s (MDist a s)Source

Create a new distributed value, having as many members as threads in the given Gang.

primReadMD :: DPrim a => MDist a s -> Int -> ST s aSource

Read the member of a distributed value corresponding to the given thread index.

primWriteMD :: DPrim a => MDist a s -> Int -> a -> ST s ()Source

Write the member of a distributed value corresponding to the given thread index.

primUnsafeFreezeMD :: DPrim a => MDist a s -> ST s (Dist a)Source

Freeze a mutable distributed value to an immutable one. You promise not to update the mutable one any further.

primSizeD :: DPrim a => Dist a -> IntSource

Get the size of a distributed value, that is, the number of threads in the gang that it was created for.

primSizeMD :: DPrim a => MDist a s -> IntSource

Get the size of a distributed mutable value, that is, the number of threads in the gang it was created for.