In today’s world, computations are large

(execution for many seconds or minutes, Gbytes of storage, etc.)

Imagine a new computing paradigm that allows execution of very large numbers of very small tasks (as small as 10 microseconds duration)

Why does Big Control need Granular Computing?

A large device swarm can generate millions of updates per second, each of which can result in a cascade of small tasks in the application

Granular computing: many tiny tasks

A common way to speed up an application is to break it up into smaller tasks that can run concurrently. Granular computing will permit much smaller tasks than before, and many more of them; this will allow Big Control applications to incorporate large amounts of data into sophisticated control algorithms, while still completing quickly enough to respond to devices in real time.

A New Software Stack

Existing software stacks have too much overhead to support granular computing

Granular computing requires rethinking the entire software stack and how it interfaces with the underlying hardware. Here are some of the projects we are working on:

  • Thread management: a new core-aware approach called Arachne, which enables cross-core thread creation in 200 ns.
  • Network transport: a new protocol called Homa, which reduces latency for short messages to 15 µs even at high network loads (10-100x better than other approaches).
  • Cluster scheduling: Canary can schedule > 100,000 tasks/second in a cluster, with scheduling latency less than 10 µs.
  • Granular applications ExCamera uses AWS Lambda to reduce latency for 4K video encoding by 14x.
back to top