We present the first study that analyzes the usage of parallel libraries in a large scale experiment. We analyzed 655 open-source applications that adopted Microsoft’s new parallel libraries – Task Parallel Library (TPL) and Parallel Language Integrated Query (PLINQ) – comprising 17.6M lines of code written in C#. These applications are developed by 1609 programmers. Using this data, we answer 8 research question and we uncover some interesting facts. For example, (i) for two of the fundamental parallel constructs, in at least 10% of the cases developers misuse them so that the code runs sequentially instead of concurrently, (ii) developers make their parallel code unnecessarily complex, (iii) applications of different size have different adoption trends.
July '12: Our paper got accepted for the ACM SIGSOFT 2012 / FSE-20 conference with %17 acceptance rate.
Usage statistics of each parallel construct (including avg, max, std dev)
Many usage examples of each overloaded method from real code (also, highlighting the code snippet in the source file through Github)! It is really COOL, Check it Out:)
Information about applications that we analyzed in our study
This research was performed in the University of Illinois at Urbana-Champaign. It was partially funded by Microsoft through an SEIF award, and by Intel through a gift grant. The authors would like to thank Stephen Toub, Kevin Pilch-Bisson, Shan Lu, Mark Grechanik, Michael Hind, Stas Negara, Cosmin Radoi, Yu Lin, Phil Miller, Milos Gligoric, Samira Tasharofi, Mohsen Vakilian, Yun Young Lee, Darko Marinov for providing helpful feedback.