A Methodology for Porting Sequential Software to the Multicore Platform - Considering Technical and Economical Aspects of Software Parallelization

Constantin Christmann, Jürgen Falkner, Anette Weisbecker

2014

Abstract

Today multicore processors are ubiquitous in desktop computers, servers and various other devices. In order to take advantage of such multicore processors many of today’s existing applications, which typically are sequential applications, need to be ported to the multicore platform. However, the adoption of multicore technology in software applications is still restrained by technical and economical obstacles. The contribution of this paper is a methodology for porting sequential software to the multicore platform. It takes into account the technical specifics of parallel programming and multicore technology offering developers orientation during the porting process. In addition to that (and in contrast to existing methodologies) it also addresses the economical obstacles of multicore adoption in software development by (1) supporting planning and cost control to counteract high development costs and by (2) utilizing auto tuning in order to cope with uncertainty due to varying processor architectures.

References

  1. Asanovic, K. et al., 2006. The landscape of parallel computing research: a view from Berkeley. University of California at Berkeley, Technical report.
  2. Asanovic, K. et al., 2009. A view of the parallel computing landscape. In Commun. ACM, Vol. 52, No. 10, pp. 56-67.
  3. Borkar, S., Chien, A. A., 2011. The future of microprocessors. In Commun. ACM, Vol. 54, No. 5, pp. 67-77.
  4. Christmann, C., Falkner, J., Weisbecker, A., 2012. Optimizing the efficiency of the manual parallelization. In Int. Conf. on Software & Systems Engineering and their Applications (ICSSEA 2012).
  5. Christmann, C., Hebisch, E., Strauß, O., 2012a. Einsatzszenarien für die multicore-technologie, Fraunhofer Verlag. Stuttgart.
  6. Christmann, C., Hebisch, E., Strauß, O., 2012b. Vorgehensweise für die multicoresoftwareentwicklung, Fraunhofer Verlag. Stuttgart.
  7. Creeger, M., 2005. Multicore cpus for the masses. In ACM Queue, Vol. 3, No. 7, pp. 64 ff.
  8. Diggins, C., 2009. Three reasons for moving to multicore. Dr. Dobb's Journal. www.drdobbs.com/parallel/21620 0386 [2014-02-25].
  9. Donald, J., Martonosi, M., 2006. An efficient, practical parallelization methodology for multicore architecture simulation. In IEEE Computer Achitecture Letters, Vol. 5, No. 2, pp. 14 ff.
  10. Foster, I., 1995. Designing and building parallel programs: concepts and tools for parallel software engineering, Addison-Wesley. Boston.
  11. Frühauf, K., Ludewig, J., Sandmayr, H., 2004. Softwareprüfung - eine anleitung zum test und zur inspektion, vdf Hochschulverlag. Zurich, 5th edition.
  12. Goldberg, D. E., 1989. Genetic algorithms in search, optimization, and machine learning, Addison-Wesley. Reading.
  13. Grötker, T. et al., 2008. The developer's guide to debugging, Springer. Berlin.
  14. Hochstein, L. et al., 2005. Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers. In Proc. of the 2005 ACM/IEEE conference on Supercomputing. IEEE Computer Society. Washington, pp. 35 ff.
  15. Intel, 2003. Threading methodology: principles and practices. Intel Corp., White paper.
  16. Jainschigg, J., 2012. Parallel programming: goals, skills, platforms, markets, languages. Slashdot Media, Report.
  17. Kampmann, R., Walter, J., 2009. Mikroökonomie: markt, wirtschaftsordnung, wettbewerb, Oldenbourg. Munich.
  18. Karcher, T., Schaefer, C., Pankratius, V., 2009. Autotuning support for manycore applications: perspectives for operating systems and compilers. In ACM SIGOPS Operating Systems Review, Vol. 43, No. 2, pp. 96-97.
  19. Kellerer, H., Pferschy, U., Pisinger, D., 2010. Knapsack problems, Springer. Berlin.
  20. Ludewig, J., Lichter, H., 2007. Software-engineering: grundlagen, menschen, prozesse, techniken, Dpunkt. Heidelberg, 1st edition.
  21. Mattson, T. G., Sanders, B. A., Massingill, B. L., 2004. Patterns for parallel programming, Addison-Wesley. Boston.
  22. Park, I., 2000. Parallel programming methodology and environment for the shared memory programming model. Purdue University, PhD thesis.
  23. Pankratius, V., Tichy, W. F., 2008. Die MulticoreRevolution und ihre Bedeutung für die Softwareentwicklung. In Objektspektrum, No. 4, pp. 30-32.
  24. Ramanujam, J., Sadayappan, P., 1989. A methodology for parallelizing programs for multicomputers and complex memory multiprocessors. In Proc. 1989 ACM/IEEE Conf. on Supercomputing. ACM. New York, pp. 637-646.
  25. Rauber, T., Rünger, G., 2012. Parallele Programmierung, Springer. Berlin, 3rd edition.
  26. Singler J., Konsik, B., 2008. The gnu libstdc++ parallel mode: software engineering considerations. In Proc. 1st Int. Workshop on Multicore Software Engineering (IWMSE 7808). ACM. New York, pp. 15-22.
  27. Sodan, A. C. et al., 2010. Parallelism via multithreaded and multicore cpus. In IEEE Computer, Vol. 43, No. 3, pp. 24-32.
  28. Sundar, N. S. et al., 1999. An incremental methodology for parallelizing legacy stencil codes on messagepassing computers. In Proc. 1999 Int. Conf. on Parallel Processing (ICPP 7899). IEEE Computer Society. Washington, pp. 302-310.
  29. Tovinkere, V., 2006. A methodology for threading serial applications. Intel Corp., White paper.
  30. UBM Tech, 2011. The state of parallel programming. Report.
Download


Paper Citation


in Harvard Style

Christmann C., Falkner J. and Weisbecker A. (2014). A Methodology for Porting Sequential Software to the Multicore Platform - Considering Technical and Economical Aspects of Software Parallelization . In Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014) ISBN 978-989-758-036-9, pages 551-559. DOI: 10.5220/0004988505510559


in Bibtex Style

@conference{icsoft-ea14,
author={Constantin Christmann and Jürgen Falkner and Anette Weisbecker},
title={A Methodology for Porting Sequential Software to the Multicore Platform - Considering Technical and Economical Aspects of Software Parallelization},
booktitle={Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014)},
year={2014},
pages={551-559},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004988505510559},
isbn={978-989-758-036-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014)
TI - A Methodology for Porting Sequential Software to the Multicore Platform - Considering Technical and Economical Aspects of Software Parallelization
SN - 978-989-758-036-9
AU - Christmann C.
AU - Falkner J.
AU - Weisbecker A.
PY - 2014
SP - 551
EP - 559
DO - 10.5220/0004988505510559