Avoid shared memory2
Variables directly reflect the memory hardware
Programs schedule values into variables
- for parallel programs, this is pretty tricky
Variable references must be properly synchronized
- barriers
- tend to oversynchronize the computation
- wait and signal
- are better, but need accurate dependence information
There are alternatives to ordinary variables
- producer-consumer variables
- single-assignment variables
- linear variables