Research
ThinkMeta ConcurrentTasks
ThinkMeta ConcurrentTasks is a research project into the economical parallelisation of software: making it worthwhile to spread an algorithm across many CPU cores even when its individual steps are small.
The problem
A large class of algorithms – audio and video coding, data compression, world streaming in simulations and games, graph traversal – is concurrent in principle but hard to parallelise in practice. Once such an algorithm is split into small tasks that coordinate frequently, the cost of handing control from one task to the next can rival the useful work done in between. On classic operating-system threads that trade-off rarely pays off, so the work stays on a single core while the rest of the machine sits idle.
The approach
ThinkMeta ConcurrentTasks is a cooperative runtime that schedules these tasks itself, without going through the operating system on every switch, so that switching between them becomes almost free. Fine-grained parallelism then becomes practical – without rewriting the algorithm around a different programming model. Asynchronous input and output fold into the same task model.
Why it matters
- Cost and energy. The same result on cheaper, lower-power multi-core hardware instead of one fast core.
- Latency. Work that previously ran in sequence can overlap, shortening response times.
- Reuse. Breaking an algorithm into well-defined tasks yields components that are easier to test and recombine.
Status
ThinkMeta ConcurrentTasks is in active development.
Looking for first adopters
We are looking for pilot partners with compute- or latency-critical workloads who want to evaluate ThinkMeta ConcurrentTasks on a real problem – for example:
- game engines: asset streaming, physics and collision build-up
- medical imaging and signal processing
- scientific and engineering simulation
- real-time audio and video
If that sounds like your workload, get in touch.