The red and black arrays are divided into roughly equal size bands of rows, with each band assigned to a different processor. Communication occurs across the boundaries between bands.
Processors synchronize with barriers.
The matrix A is divided into square blocks for temporal and spatial locality. The shared array of molecule structures is divided into equal contiguous chunks, with each chunk assigned to a different processor. The bulk of the interprocessor communication occurs during a phase that updates intermolecular forces using locks, resulting in a migratory sharing pattern. Locks are used to insert and delete unsolved tours in a priority queue. Updates to the shortest path are protected by a separate lock.