Font Size: a A A

Research On Key Techniques For Software Transactional Memory Parallel Programming Environment

Posted on:2011-06-12Degree:DoctorType:Dissertation
Country:ChinaCandidate:L PengFull Text:PDF
GTID:1118360308485583Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
New Moore's Law says that without increasing much of the CPU frequency, processing cores on a single chip will double about every two years. As a result the performance improvement depends on parallelism. Parallel algorithms and parallel programming are the keys in several decades for computer since and software area.In shared memory architecture, threads communicate through shared variables, and synchronization is necessary for correct parallel programming. However, the traditional lock mechanism for synchronization between threads in parallel programs is difficult to use, and is not composable. People propose Transactional Memory (TM) mechanism which originates from transactions in database systems. The goal of transactional memory is to provide simple and efficient parallel programming synchronization mechanism. Transactional memory has become the research focus of the architecture and compiler area in these years.This thesis focuses on how to construct a usable parallel programming environment with Transactional Memory. We discuss the safety of transactional memory and the semantics of transactional memory in language, performance optimization of software transactional memory with safety property, the construction of software transactional memory parallel programming environments, performance tuning support of transactional memory application, and the utilization of irregular loop speculation parallel by transactional memory. Major work and innovation achieved as follows:(1) Transactional memory serializability and transactional mutex semanticsIn shared memory programming languages Transactional memory as synchronization technique has no formal specification which satisfied safety property. We propose Transactional Memory Serializability (TMS) and transaction mutex semantics which describe the requirements and possible optimizations of the transactional memory parallel programming environment for programmers. TMS is focusing on the requirements between transactions which keep transactions running as if in a sequential order and eliminate all possible dangerous exceptions. We prove that TMS obeys the requirements of safety property. Based on TMS transactional mutex semantics require that transactions which conflict to keep happen-before relations which is consistent with available synchronizations. Transactional mutex semantics get rid of data races between transactional codes and non-transactional codes under weak isolation.(2)Vector Timestamp based software transactional memory algorithm without atomic operations VectorSTMSoftware transactional memory algorithms now can not provide safety and high performance in the same time. We come up with a vector timestamp based software transactional memory algorithm VectorSTM. VectorSTM detects conflicts with bloom filter which efficiently lower the costs of conflicts detection and needs no atomic operations which eliminates the costs of atomic operations, and VectorSTM provides TMS and transactional mutex semantics efficiently.The tests of STAMP show that VectorSTM's performance is close to TL2 and sometimes better than RingSTM. However VectorSTM can provide privatization and publication safety which can't both be provided by TL2 and RingSTM for shared variables.(3)XOR hash function based adaptive conflicts detection algorithm AdapSig Software transactional memory using bloom filter for conflicts detection suffers a lots from false positives from bloom filter. AdapSig uses XOR hash functions and adaptively changes the length of bit vectors in bloom filter in according to the read/write sets size when transaction executed,and AdapSig lowers false positives and improves the performance. In VectorSTM comparing to the original bloom filter using bit selection function and stable bit vector, AdapSig can improve the performance of STAMP when 8 threads with 3.32% average and the best to 15%.(4) A software transactional memory parallel programming environment OpenTM-Fortran integrated with optimization achieved beforeIn scientific computing transactional memory is not used in Fortran yet. For the first time we construct a software transactional memory parallel programming environment OpenTM-Fortran. We integrate VectorSTM and AdapSig in OpenTM-Fortran and OpenTM-Fortran provides runtime profile of transactional memory programs for programmers to optimizing programs. We also try to use the speculation of transactional memory to explore Memory Level Parallelism in multi-core processors. The results show that the speculation of transactional memory can explore Memory Level Parallelism and computing ability in multi-core processors.
Keywords/Search Tags:Multi/many-core processor, software transactional memory, safety property, conflict detection, parallel programming environment, OpenMP Fortran, speculation
PDF Full Text Request
Related items