Text this: Distinguishing sharing types to minimize communication in software distributed shared memory systems.