liveBook · Manning

Communication overhead

As explained in Grokking Concurrency

Communication overhead, or communication cost, is the time or resource expense incurred when processors or concurrent tasks exchange data.

Communication overhead is the time or resource cost of exchanging data between processors or concurrent tasks. Like workers coordinating while shoveling snow, tasks can lose performance while waiting for information. section 13.6

Reduce communication overhead by changing how work is organized:

  • Increase locality by combining tasks that exchange data, making their communication part of one task. section 13.6
  • Group tasks that send data and tasks that receive data, reducing waiting even when transmission time stays the same. section 13.6
  • Balance simplicity against performance: fewer, larger tasks can communicate less but may complicate the design. section 13.6

Partitioned matrix multiplication

A fine-grained matrix multiplication assigns one task to each output element, requiring each subtask to receive a row of matrix A and a column of matrix B. Sharing matrices between threads can make this arrangement effective on SIMD computers, but its communication pattern affects performance. section 13.6

How Grokking Concurrency covers it

How deep it goes
Explains task combination, task grouping, waiting costs, and a partitioned matrix example without descending into implementation details.
Examples
Uses snow shoveling, grouped sender-receiver tasks, and fine-grained matrix multiplication to illustrate communication costs.
What you can do after
Evaluate concurrent task designs and reduce overhead by increasing locality or grouping communicating tasks.
How it connects
Connects communication overhead with locality, task partitioning, matrix multiplication, threads, and SIMD computers.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Grokking Concurrency. The section links point to the parts of the book it draws on.