Crates.io | two_phase_channel |
lib.rs | two_phase_channel |
version | 0.2.2 |
source | src |
created_at | 2024-02-29 09:22:18.728267 |
updated_at | 2024-03-02 08:43:54.589222 |
description | A safe synchronisation-free parallel communication channel by statically forbidding conflicting accesses |
homepage | |
repository | https://github.com/ISibboI/two_phase_channel |
max_upload_size | |
id | 1157585 |
size | 36,314 |
Various safe synchronisation-free parallel communication channels. The channels support the transmission of one data item, i.e. they have no queue. The synchronisation is externalised by requiring zero-sized key types to access the channels. This is useful if a computation can be split into separate compute and communicate steps. Then, the two-phase channel allows the steps to work without any internal synchronisation, the threads only need to be synchronised between the steps.
While this libary was made with performance in mind, it is unclear if this pattern actually improves performance for any given computational task. Use at your own discretion.