Technical Perspective: Unexpected Connections
Résumé
To improve program performance on today's clusters, clouds and multicore
computers requires the developer to pay serious attention to
scalability. When a thread updates some shared datum, and another thread wants to read
or write the most recent version of that datum (they \emph{conflict}),
they must synchronise, which constitutes a sequential bottleneck.
This is a general result that does not depend on any particular
implementation, even with efficient hardware support for cache
coherence, as explained in the paper.
Here comes the paper's main insight.
If two concurrent procedure calls \emph{commute} with each other (i.e.,
executing them in either order is equivalent), this means that neither
one depends on the result of the other.
Therefore, \emph{there is no inherent reason why these calls should
conflict}; and, hence, \emph{it is possible to implement them in a way
that scales well}.
Domaines
Autre [cs.OH]Origine | Fichiers produits par l'(les) auteur(s) |
---|