Advertisement

Computing

, Volume 97, Issue 9, pp 939–959 | Cite as

Identifying the optimal level of parallelism in transactional memory applications

  • Diego Didona
  • Pascal Felber
  • Derin Harmanci
  • Paolo Romano
  • Jörg Schenker
Article

Abstract

In this paper we investigate the issue of automatically identifying the “natural” degree of parallelism of an application using software transactional memory (STM), i.e., the workload-specific multiprogramming level that maximizes application’s performance. We discuss the importance of adapting the concurrency level in two different scenarios, a shared-memory and a distributed STM infrastructure. We propose and evaluate two alternative self-tuning methodologies, explicitly tailored for the considered scenarios. In shared-memory STM, we show that lightweight, black-box approaches relying solely on on-line exploration can be extremely effective. For distributed STMs , we introduce a novel hybrid approach that combines model-driven performance forecasting techniques and on-line exploration in order to take the best of the two techniques, namely enhancing robustness despite model’s inaccuracies, and maximizing convergence speed towards optimum solutions.

Keywords

Transactional memory Self-tuning Multi-programming level Analytical modelling Machine learning Gradient descent 

Mathematics Subject Classification

68N19 

Notes

Acknowledgments

This work has been partially supported by the projects “Cloud-TM” and “ParaDIME” (co-financed by the European Commission through the contracts no. 257784 and 318693), project specSTM (PTDC/EIA-EIA/122785/2010), the COST Action Euro-TM (IC1001) and by FCT (INESC-ID multiannual funding) through the PEst-OE/EEI/LA0021/2013 Program Funds.

References

  1. 1.
    Abouzour M, Salem K, Bumbulis P (2010) Automatic tuning of the multiprogramming level in Sybase SQL Anywhere. In: Proc. of ICDE workshopsGoogle Scholar
  2. 2.
    Cao Minh C, Chung J, Kozyrakis C, Olukotun K (2008) STAMP: Stanford transactional applications for multi-processing. In: Proc. of IISWCGoogle Scholar
  3. 3.
    Couceiro M, Romano P, Carvalho N, Rodrigues L (2009) D2stm: dependable distributed software transactional memory. In: Proc. of PRDCGoogle Scholar
  4. 4.
    Di Sanzo P, Ciciani B, Palmieri R, Quaglia F, Romano P (2012) On the analytical modeling of concurrency control algorithms for software transactional memories: the case of commit-time-locking. Performance EvaluationGoogle Scholar
  5. 5.
    Di Sanzo P, Ciciani B, Quaglia F, Romano P (2008) A performance model of multi-version concurrency control. In: Proc. of MASCOTSGoogle Scholar
  6. 6.
    Didona D, Felber P, Harmanci D, Romano P, Schenker J (2013) Identifying the optimal level of parallelism in transactional memory applications. In: Proc. of NETYSGoogle Scholar
  7. 7.
    Didona D, Romano P, Peluso S, Quaglia F (2012) Transactional auto scaler: elastic scaling of in-memory transactional data grids. In: Proc. of ICACGoogle Scholar
  8. 8.
    Dragojevic A, Guerraoui R (2010) Predicting the scalability of an stm: a pragmatic approach. In: TRANSACTGoogle Scholar
  9. 9.
    Elnikety S, Dropsho S, Cecchet E, Zwaenepoel W (2009) Predicting replicated database scalability from standalone database profiling. In: Proc. of EuroSysGoogle Scholar
  10. 10.
    Ghanbari S, Soundararajan G, Chen J, Amza C (2007) Adaptive learning of metric correlations for temperature-aware database provisioning. In: Proc. of ICACGoogle Scholar
  11. 11.
    Harmanci D, Gramoli V, Felber P, Fetzer C (2010) Extensible transactional memory testbed. Journal of Parallel and Distributed Computing, Special Issue (Transactional Memory) 70(10):1053–1067Google Scholar
  12. 12.
    Harris T, Larus JR, Rajwar R (2010) Transactional memory, synthesis. Lectures on computer architecture, 2nd edn. Morgan & Claypool Publisher, San RafaelGoogle Scholar
  13. 13.
    Heindl A, Pokam G, Adl-Tabatabai AR (2009) An analytic model of optimistic software transactional memory. In: Proc. of ISPASSGoogle Scholar
  14. 14.
    Heiss HU, Wagner R (1991) Adaptive load control in transaction processing systems. In: Proc. of VLDBGoogle Scholar
  15. 15.
    Herlihy M, Moss JEB (1993) Transactional memory: architectural support for lock-free data structures. In: Proc. of ISCAGoogle Scholar
  16. 16.
    Jiménez-Peris R, Patiño-Martínez M, Alonso G (2002) Non-intrusive, parallel recovery of replicated data. In: Proc. of SRDSGoogle Scholar
  17. 17.
    Marchioni F, Surtani M (2012) Infinispan Data Grid Platform. Packt Publishing, BirminghamGoogle Scholar
  18. 18.
    Mohammad A, Mikel L, Christos K, Kim J, Chris K, Ian W (2008) Robust adaptation to available parallelism in transactional memory applications. HIPEAC JGoogle Scholar
  19. 19.
    Quinlan JR Rulequest Cubist. http://www.rulequest.com/cubist-info.html. Accessed Nov 2013
  20. 20.
    Quinlan JR (1993) C.45: programs for machine learning. Morgan Kaufmann, BurlingtonGoogle Scholar
  21. 21.
    Raghavan N, Vitenberg R (2011) Balancing the communication load of state transfer in replicated systems. In: Proc. of SRDSGoogle Scholar
  22. 22.
    (2011) Red Hat/JBoss: JBoss Infinispan. http://www.jboss.org/infinispan. Accessed Nov 2013
  23. 23.
    Reimer N, Haenssgen S, Tichy WF (1996) Dynamically adapting the degree of parallelism with reflexive programs. In: Proc. of IRREGULARGoogle Scholar
  24. 24.
    Rughetti D, Di Sanzo P, Ciciani B, Quaglia F (2012) Machine learning-based self-adjusting concurrency in software transactional memory systems. In: Proc. of MASCOTSGoogle Scholar
  25. 25.
    Schenker J (2012) Optimistic synchronization and the natural degree of parallelism of concurrent applications, MSc ThesisGoogle Scholar
  26. 26.
    Schroeder B, Harchol-Balter M, Iyengar A, Nahum E, Wierman A (2006) How to determine a good multi-programming level for external scheduling. In: Proc. of ICDEGoogle Scholar
  27. 27.
    Singh R, Sharma U, Cecchet E, Shenoy P (2010) Autonomic mix-aware provisioning for non-stationary data center workloads. In: Proc. of ICAC. Accessed Nov 2013Google Scholar
  28. 28.
    TPC Council: TPC-C Benchmark. http://www.tpc.org/tpcc. Accessed Nov 2013
  29. 29.
    Yoo RM, Lee HHS (2008) Adaptive transaction scheduling for transactional memory systems. In: Proc. of SPAAGoogle Scholar
  30. 30.
    Yu PS, Dias DM, Lavenberg SS (1993) On the analytical modeling of database concurrency control. ACM J 40:831–872Google Scholar
  31. 31.
    Zhang Q, Cherkasova L, Smirni E (2007) A regression-based analytic model for dynamic resource provisioning of multi-tier applications. In: Proc. of ICACGoogle Scholar

Copyright information

© Springer-Verlag Wien 2013

Authors and Affiliations

  • Diego Didona
    • 1
  • Pascal Felber
    • 2
  • Derin Harmanci
    • 2
  • Paolo Romano
    • 1
  • Jörg Schenker
    • 2
  1. 1.Instituto Superior Técnico/INESC-IDLisbonPortugal
  2. 2.University of NeuchâtelNeuchâtelSwitzerland

Personalised recommendations