Terminology
Asynchronicity: Tasks A, B, ... , N are solved in an interleaved fashion, instead of one after the other.
Multithreading: Task A is split into multiple sub-tasks A1, A2, ... , AN which are solved in parallel.
Multithreading will always be faster if you add more CPU cores, while asynchronicity is limited due to a fixed number of tasks. Asynchronous tasks typically also take a bigger performance hit when they need to be synchronized at certain points.
Spring: Singlethreaded simulation (less than 5% multithreaded).
Spring MT: A special build with multithreaded simulation (~50%).
gpl violation: Another special build with multithreaded simulation and pathfinding (>75%).
ASIM: Asynchronous simulation.
APATH: Asynchronous pathfinding.
GML: OpenGL Mulithreading Library. Multithreaded unit rendering based on a queuing mechanism.
OMP: OpenMP, an open standard for multithreading. Currently mostly used during game startup, but the pathfinders also use some OMP, and there is a little for the rendering as well. OMP is disabled if ASIM is enabled.
MT-Sim: Same as ASIM GML. A confusing name that will not be used anymore.
Examples
Spring (OMP): OMP-based multithreading.
Spring (ASIM GML OMP): Asynchronous simulation, multithreaded unit rendering OR OMP-based multithreading. If the game does not support ASIM:
If the game supports ASIM:
Spring MT (ASIM APATH GML): Multithreaded asynchronous simulation, asynchronous pathfinding, multithreaded unit rendering.
gpl violation (MT-ASIM MT-APATH GML): Multithreaded asynchronous simulation, multithreaded asynchronous pathfinding, multithreaded unit rendering.
