Gears fit into the compute and collaborate aspects of the Flywheel Platform. A Gear is an algorithm that has been packaged in a way that allows it to be run and managed within the Flywheel Platform. The concept underlying Gears is containerization. Containerization is a method where a standard unit of software is generated by packaging up code and all its dependencies, allowing that code to run in a reliable and reproducible way, regardless of the computational environment.
Converting an algorithm to a Flywheel Gear and executing the Gear within Flywheel has many benefits, including:
- Clear algorithm versioning
- Tracking of algorithm inputs, configuration parameters, and outputs
- Rule-based automation of Gear execution
- Algorithm and method sharing with other researchers
- Optional access to cloud-scalable resources to enable massive parallelization
Algorithms that can be containerized and executed using a compatible runtime (e.g., Docker) can be packaged into a Flywheel Gear. This includes algorithms written in various programming languages. Some of the most popular languages used within existing Gears are:
Algorithms can not be packaged into a Gear if they:
- Cannot be executed within a Linux environment (via a command line)
- Require user interaction (via GUI or other)
If you are unsure if your algorithm falls into one of these categories listed above, contact Flywheel Support to determine if your algorithm is a potential Gear candidate.