Cyclone

C++
Multithreading
Cyclone

Tech Stack

C++
Multithreading
Premake

Description

Cyclone is a C++ multithreading library built for usage in real-time applications on Windows. It provides a simple API for launching threads based on hardware availability whilst supporting loop-based parallelizations and priority scheduling.

Tasks given to Cyclone are known as "Jobs". These are automatically picked up by available threads and processed without any need for manual intervention, although this behavior can be influenced by priority settings accordingly.

Users may also manage cross-thread dependencies with the usage of Contexts, a high-level construct which threads can be assigned to and waited upon.

The syncing of results back to the main thread can be done through self-augmentation using event systems as required.

To build the library, navigate to the Scripts folder and run CycloneBuildWindows.bat. This leverages Premake and automatically generates a C++17 solution in the project's root directory.

  • Built a C++ multithreading library for Windows real-time applications.
  • Implemented a job system ("Jobs") with automatic worker pickup and priority scheduling.
  • Supported loop-based parallelization and hardware-aware worker utilization.
  • Added Contexts for cross-thread dependency management and waiting.
  • Packaged a Premake-based build flow via CycloneBuildWindows.bat to generate a C++17 solution.

    Ryan Tan Wen Ter