A modern interface for implementing bulk-synchronous parallel programs.
bulk::index
now represents indices as size_t
clear_queues
argument to world::sync
, to optionally retain all messages
from the previous superstep.clear
method of queue
.std::barrier
.Barrier
concept, and constrain the associated environment
and
world
parameters.std::span
.bulk::span
was removed in favor of std::span
.bulk::sum
and bulk::product
from silently truncating values (@TimoMaarse, #11)bulk::product(bulk::world&, T)
.world::split
in the thread backend.T*
in the implementation of bulk::coarray:data
.size_t
for indices in arrays and slicescoarray::data
now returns a T*
instead of void*
coarray::put
now requires an explicit offsetint
, instead of a singleton arrayfoldl
and foldl_each
for coarrays.sum
, product
, min
, and max
, for values, variables and coarrays. Example: bulk::max(world, s + 1) == p
.bulk::span
for coarrays, allowing contiguous sequences as slice data
sources in addition to std::vector
.coarray::data
to access the underlying (sequential) storage of coarrays.coarray
.bulk::world::split
.get_change
to timer class (@SdeBerg, #10)size_t
for indices in arrays and slicescoarray::data
now returns a T*
instead of void*
coarray::put
now requires an explicit offsetint
, instead of a singleton arraybulk
and bulk_[backend]
partitioned_array
world::log_once
foldl
success
counterp > 2
-Werror=format-security
issue in world::log
start_value
of foldl
to {}
from 0
for
non-numeric typesfoldl
coarray::image::put
take values by const referencecoarray
T
to satisfy is_trivially_copyable
for coarray<T>
var
and future
now avoids redundant memory
allocation and copying, by making the memory buffer objects non-owningBulk is a new interface for writing parallel programs in bulk synchronous style using C++. Our BSP interface supports and encourages the use of modern C++ features enabling safer and more efficient distributed programming. The flexible backend architecture ensures the portability of parallel programs written with Bulk.
This initial release is a complete replacement for BSPlib.