A characterization of sharing in parallel programs and its application to coherency protocol evaluation | Synapse