Font Size: a A A

The Design, Based On High-performance Server Software Memory Affairs

Posted on:2010-03-04Degree:MasterType:Thesis
Country:ChinaCandidate:J JianFull Text:PDF
GTID:2208360275982749Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
With Moore's Law going invalid early in this century, multi-core processors became visible to the industry and got more and more popular. In return, the parallelism trend in hardware industry triggers more research power in software parallelism. Software Transactional Memory (STM) is a new mechanism used to take the place of traditional lock-based synchronization methods. Compared with lock-base synchronization, STM offers more flexibility and scalability and simplifies code writing and maintenance. There are generally two types of STM today: lock-based and lock-free. We'll introduce typical implementations of both types, and then give analysis on their advantages and disadvantages.We found that, for real world applications, the pressure are usually not persistent. Especially for high performance servers, the pressure could be changing fast in a very short time. We also found the performance of STM implementation depends heavily on its workload, and the best sets of parameters and strategy vary across different workloads and environment. Most of currently STM implementations lack the ability to adjust their parameters and strategies according to pressure and changes. Based on the above observations, we propose a new mechanism of STM implementation: PA-TinySTM, short for Pressure Aware TinySTM.PA-TinySTM mainly consists of four modules, which are Pressure Detection (PD), Dynamic Tuning (DT), TinySTM Main Body (MB) and Feedback (FB). PD is responsible for collecting transaction related data before a transaction gets into execution status and calculating corresponding runtime pressure on the fly. FB is responsible for collecting information that's only available after a transaction has finished execution and gives statistics results accordingly, such as average execution time and transaction abort rate. The outputs of PD and FB are provided to DT module as basis for dynamic tuning. DT contains two sub modules itself: TinySTM parameter tuning (TPT) and memory allocation strategy tuning (MAST). TPT considers the pressure changes and memory access pattern altogether and tunes TinySTM parameters accordingly. On the other hand, MAST optimizes dynamic memory allocation strategy according to multithreaded memory request pattern and contention changes under multithreaded environment. TPT and MAST are kept updated by the newest output from PD and FB, so as to keep the runtime parameters and strategy get tuned with pressure changes in a timely manner. Through the evaluation results, we can see that PA-TinySTM responds very quickly with pressure changes. And with the dynamic tuning ability, our PA-TinySTM based server application can work very across different workloads.
Keywords/Search Tags:software transactional memory, parallel computing, pressure detection, dynamic tuning
PDF Full Text Request
Related items