the Stanford Transactional Applications for Multi-Processing; a benchmark suite for transactional memory research