Loop-Carried Dependence Verification in OpenMP

  • Juan Salamanca
  • Luis Mattos
  • Guido Araujo
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8766)


Data dependence analysis is a very difficult task, mainly due to the limitations imposed by pointer aliasing, and by the overhead of dynamic data dependence analysis. Despite the huge effort to devise improved data dependence analysis techniques, the problem is still far from solved. Efficient methods to reduce memory and time overhead imposed by dynamic instrumentation are thus required to enable fast and correct program parallelization. This paper presents a novel dynamic loop-carried dependence checker integrated as a new extension to OpenMP, the parallel for check construct, which can be used to help programmers identify the existence of loop-carried dependences in parallel for constructs.


Parallel programming checking OpenMP loop-carried dependences dynamic data dependence analysis parallelization 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Wolfe, M.J.: High Performance Compilers for Parallel Computing. Shanklin, C., Ortega, L. (eds.). Addison-Wesley Longman Publishing Co., Inc., Boston (1995)Google Scholar
  2. 2.
    Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann (1997) ISBN 1-55860-320-4Google Scholar
  3. 3.
    Yu, H., Li, Z.: Fast loop-level data dependence profiling. In: Proceedings of the 26th ACM International Conference on Supercomputing (ICS 2012), pp. 37–46. ACM, New York (2012), http://doi.acm.org/10.1145/2304576.2304584, doi:10.1145/2304576.2304584Google Scholar
  4. 4.
    Kim, M., Kim, H., Luk, C.-K.: SD3: A scalable approach to dynamic data- dependence profiling. Technical Report TR-2010-001, Atlanta, GA, USA (2010)Google Scholar
  5. 5.
    Larus, J.R.: Loop-level parallelism in numeric and symbolic programs. IEEE Transactions on Parallel and Distributed Systems 4(7), 812 (1993), doi:10.1109/71.238302.CrossRefGoogle Scholar
  6. 6.
    Kim, M., Kim, H., Luk, C.-K.: SD3: A Scalable Approach to Dynamic Data-Dependence Profiling. In: 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), December 4-8, pp. 535–546 (2010), doi:10.1109/MICRO.2010.49.Google Scholar
  7. 7.
    Kim, M., Lakshminarayana, N.B., Kim, H., Luk, C.-K.: SD3: An Efficient Dynamic Data-Dependence Profiling Mechanism. IEEE Transactions on Computers 62(12), 2516–2530 (2013), doi:10.1109/TC.2012.182MathSciNetCrossRefGoogle Scholar
  8. 8.
    Kim, M., Kim, H., Luk, C.-K.: Prospector: A dynamic data-dependence profiler to help parallel programming. In: 2nd USENIX Workshop on Hot Topics in Parallelism, HotPar 2010 (2010)Google Scholar
  9. 9.
    Ketterlin, A., Clauss, P.: Profiling Data-Dependence to Assist Parallelization: Framework, Scope, and Optimization. In: 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), December 1-5, pp. 437–448 (2012), doi:10.1109/MICRO.2012.47Google Scholar
  10. 10.
    Vanka, R., Tuck, J.: Efficient and accurate data dependence profiling using software signatures. In: Proceedings of the Tenth International Symposium on Code Generation and Optimization (CGO 2012), pp. 186–195. ACM, New York (2012), http://doi.acm.org/10.1145/2259016.2259041, doi:10.1145/2259016.2259041Google Scholar
  11. 11.
    Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 2nd edn. The MIT Press (September 2001)Google Scholar
  12. 12.
    Moseley, T., Shye, A., Reddi, V.J., Grunwald, D., Peri, R.: Shadow Profiling: Hiding Instrumentation Costs with Parallelism. In: International Symposium on Code Generation and Optimization, CGO 2007, March 11-14, pp. 198–208 (2007), doi:10.1109/CGO.2007.35Google Scholar
  13. 13.
    Gordon, M.I., Thies, W., Amarasinghe, S.: Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. SIGOPS Oper. Syst. Rev. 40(5), 151–162 (2006), http://doi.acm.org/10.1145/1168917.1168877, doi:10.1145/1168917.1168877
  14. 14.
    Bach, M.M., Charney, M., Cohn, R., Demikhovsky, E., Devor, T., Hazelwood, K., Jaleel, A., Luk, C.-K., Lyons, G., Patil, H., Tal, A.: Analyzing parallel programs with pin. Computer 43(3), 34–41 (2010)CrossRefGoogle Scholar
  15. 15.
    Pacheco, P.: An Introduction to Parallel Programming, 1st edn. Morgan Kaufmann Publishers Inc., San Francisco (2011)Google Scholar
  16. 16.
    Stratton, J.A., et al.: Parboil: A Revised Benchmark Suite for Scientific and Commercial Throughput Computing (2012)Google Scholar
  17. 17.
    Kong, X., Klappholz, D., Psarris, K.: The I test: An improved dependence test for automatic parallelization and vectorization. IEEE Transactions on Parallel and Distributed Systems 2(3), 342–349 (1991), doi:10.1109/71.86109.CrossRefGoogle Scholar
  18. 18.
    Zhang, X., Navabi, A., Jagannathan, S.: Alchemist: A Transparent Dependence Distance Profiling Infrastructure. In: International Symposium on Code Generation and Optimization, CGO 2009, March 22-25, pp. 47–58 (2009), doi:10.1109/CGO.2009.15Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Juan Salamanca
    • 1
  • Luis Mattos
    • 1
  • Guido Araujo
    • 1
  1. 1.Institute of ComputingUniversity of CampinasCampinasBrazil

Personalised recommendations