Philosophy

Parallelism in computing means breaking tasks into smaller pieces so they can be done at the same time, making computers much faster. This module was designed to make parallelism easier and more effective for everyone. It's built to help developers achieve top performance while being simple to use. It focuses on speed, scalability, ease of use, and giving developers the freedom to work their way.

  1. Performance
    At its core, this module prioritizes speed without excessive compromise on memory usage. By employing a buffer-based approach, data is serialized into buffers before being stored in a SharedTable. This method should reduce latency and ensures efficient data transfer, particularly in scenarios requiring large chunks of data to move seamlessly between parallel and serial tasks — a critical use case where the module shines.
  2. Simplicity & Flexibility
    While performance is essential, it should never come at the cost of usability. This module is designed to abstract the complexities of parallel processing. Modular by design, it gives developers the flexibility to implement custom task-handling logic to fit their specific needs, making it robust and extensible.
  3. Scalability
    Scalability ensures this module can handle everything from small tasks to massive tasks without slowing down considerably. By leveraging actors, it keeps operations fast regardless of workload size. This means the module grows with your needs and won't limit your ambitions.