Reducing Serialization
Careful about assignment and orchestration
Event synchronization
- Reduce use of conservative synchronization
- e.g. point-to-point instead of barriers, or granularity of pt-to-pt
- But fine-grained synch more difficult to program, more synch ops.
Mutual exclusion
- Separate locks for separate data
- e.g. locking records in a database: lock per process, record, or field
- lock per task in task queue, not per queue
- finer grain => less contention/serialization, more space, less reuse
- Smaller, less frequent critical sections
- don’t do reading/testing in critical section, only modification
- Stagger critical sections in time