skip to main content
10.1145/2095050.2095072acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Are Java programmers transitioning to multicore?: a large scale study of java FLOSS

Published:23 October 2011Publication History

ABSTRACT

We would like to know if Java developers are retrofitting applications to become concurrent and, to get better performance on multicore machines. Also, we would like to know what concurrent programming constructs they currently use. Evidence of how programmers write concurrent programs can help other programmers to be more efficient when using the available constructs. Moreover, this evidence can assist researchers in devising new mechanisms and improving existing ones. For this purpose, we have conducted a study targeting a large-scale Java open source repository, SourceForge. We have analyzed a number of FLOSS projects along two dimensions: spatial and temporal. For the spatial dimension, we studied the latest versions of more than 2000 projects. Our goal is to understand which constructs developers of concurrent systems employ and how frequently they use them. For the temporal dimension we took a closer look at various versions of six projects and analyzed how the use of concurrency constructs has evolved over time. In addition, we tried to establish if uses of concurrency control constructs were aimed at leveraging multicore processors. We have downloaded more than two thousand Java projects including their various versions, in addition to individual analysing about six well known open-source projects.

References

  1. Joe Armstrong. Erlang. Commun. ACM, 53(9):68--75, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Danny Dig, John Marrero, Michael D. Ernst. How do Programs Become More concurrent? A Story of Program Transformations. In International Workshop on Multicore Software Engineering, Hawaii, USA, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Sushil Bajracharya, Joel Ossher, and Cristina Lopes. Sourcerer: An internet-scale software repository. In Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation, pages 1--4, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Bernstein and A. Bachmann. When process data quality affects the number of bugs: correlations in software engineering datasets. In MSR'2010, Cape Town, South Africa, May 2010.Google ScholarGoogle Scholar
  5. David R. Butenhof. Programming with POSIX Threads. Addison-Wesley, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Danny Dig, John Marrero, and Michael D. Ernst. Refactoring sequential java code for concurrency via concurrent libraries. In Proceedings of the 31st International Conference on Software Engineering, pages 397--407, Vancouver, Canada, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Marc Eaddy, Thomas Zimmermann, Kaitlin D. Sherwood, Vibhav Garg, Gail C. Murphy, Nachiappan Nagappan, and Alfred V. Aho. Do crosscutting concerns cause defects? IEEE Trans. Softw. Eng., 34:497--515, July 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Pedro Fonseca, Cheng Li, Vishal Singhal, and Rodrigo Rodrigues. A study of the internal and external effects of concurrency bugs. In Proceedings of DSN'2010, Hong Kong, China, June 2010.Google ScholarGoogle ScholarCross RefCross Ref
  9. Mark Grechanik, Collin McMillan, Luca DeFerrari, Marco Comi, Stefano Crespi, Denys Poshyvanyk, Chen Fu, Qing Xie, and Carlo Ghezzi. An empirical investigation into a large-scale java open source code repository. In Proceedings of the 4th International Symposium on Empirical Software Engineering and Measurement, Bolzano-Bozen, Italy, September 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Maurice Herlihy. Linearizability. In Encyclopedia of Algorithms. Springer-Verlag, 2008.Google ScholarGoogle Scholar
  11. J. Howison, M. Conklin, and K. Crowston. Flossmole: A collaborative repository for floss research data and analyses. International Journal of Information Technology and WebEngineering, 1(3):17--26, July 2006.Google ScholarGoogle Scholar
  12. Ross Ihaka and Robert Gentleman. R: A language for data analysis and graphics. Journal Of Computational And Graphical Statistics, 5(3):299--314, 1996.Google ScholarGoogle Scholar
  13. M. G. Kendall. A new measure of rank correlation. Biometrika, June, 1938.Google ScholarGoogle Scholar
  14. Barbara A. Kitchenham, Shari Lawrence Pfleeger, Lesley M. Pickard, Peter W. Jones, David C. Hoaglin, Khaled El Emam, and Jarrett Rosenberg. Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng., 28(8):721--734, August 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. James Larus and Christos Kozyrakis. Transactional memory. Commun. ACM, 51(7):80--88, July 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Doug Lea. The java.util.concurrent synchronizer framework. Sci. Comput. Program., 58(3):293--309, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Joel Ossher, Sushil Krishna Bajracharya, and Cristina Videira Lopes. Automated dependency resolution for open source software. In Proceedings of the 7th International Working Conference on Mining Software Repositories, pages 130--140, Cape Town, South Africa, May 2010.Google ScholarGoogle ScholarCross RefCross Ref
  18. Dag I. K. Sjoberg, Tore Dyba, and Magne Jorgensen. The future of empirical methods in software engineering research. In Proceedings of 2007 Future of Software Engineering, pages 358--378, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. W. Torres, G. Pinto, B. Fernandes, J. Oliveira, F. Ximenes and F. Castor. How do programmers use concurrency? http://www.cin.ufpe.br/~epona, Steptember, 2011.Google ScholarGoogle Scholar

Index Terms

  1. Are Java programmers transitioning to multicore?: a large scale study of java FLOSS

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SPLASH '11 Workshops: Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, & VMIL'11
        October 2011
        358 pages
        ISBN:9781450311830
        DOI:10.1145/2095050

        Copyright © 2011 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 October 2011

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader