2015 · 29 citations · 18 references
EngineeringComputer ArchitectureTransaction ProcessingSoftware PartitioningFormal VerificationHardware SecurityHardware BuffersPlanning OperationsParallel ComputingCompilersInstruction-level ParallelismCompiler SupportCompletion OperationConcurrent ProgrammingComputer EngineeringComputer ScienceProgram AnalysisPartition (Database)Formal MethodsParallel ProgrammingConcurrent Data StructureSystem SoftwareTransactional Memory
Best-effort hardware transactional memory (HTM) allows complex operations to execute atomically and in parallel, so long as hardware buffers do not overflow, and conflicts are not encountered with concurrent operations. We describe a programming technique and compiler support to reduce both overflow and conflict rates by partitioning common operations into read-mostly (planning) and write-mostly (completion) operations, which then execute separately. The completion operation remains transactional; planning can often occur in ordinary code. High-level (semantic) atomicity for the overall operation is ensured by passing an application-specific validator object between planning and completion. Transparent composition of partitioned operations is made possible through fully-automated compiler support, which migrates all planning operations out of the parent transaction while respecting all program data flow and dependences. For both micro- and macro-benchmarks, experiments on IBM z-Series and Intel Haswell machines demonstrate that partitioning can lead to dramatically lower abort rates and higher scalability.
18
Maurice Herlihy, J. Eliot B. Moss · 1993 · 2.2K citations
Software transactional memory for dynamic-sized data structures
Maurice Herlihy, Victor Luchangco, Mark Moir et al. · 2003 · 996 citations
Engineering, Computer Architecture, Transaction Processing +17
STAMP: Stanford Transactional Applications for Multi-Processing
Chi Cao Minh, JaeWoong Chung, Christos Kozyrakis et al. · 2008 · 878 citations
Engineering, Computer Architecture, Software Engineering +20
Maurice Herlihy, Eric Koskinen · 2008 · 309 citations
Engineering, Linearizable Implementation, Simple Wrapper +14