ABSTRACT
May-Happen-in-Parallel (MHP) analysis is becoming the backbone of many of the parallel analyses and optimizations. In this paper, we present new approaches to do MHP analysis for X10-like languages that support async-finish-atomic parallelism. We present a fast incremental MHP algorithm to derive all the statements that may run in parallel with a given statement. We also extend the MHP algorithm of Agarwal et al. (answers if two given X10 statements may run in parallel, and under what condition) to improve the computational complexity, without compromising on the precision.
- A GARWAL, S., B ARIK, R., S ARKAR, V., AND S HYAMASUNDAR, R. 2007. May-happen-in-parallel analysis of X10 programs. In Proceedings of PPoPP. 183–193. Google ScholarDigital Library
- A LBERT, E., F LORES -M ONTOYA, A., G ENAIM, S., AND M ARTIN - M ARTIN, E. 2013. Termination and cost analysis of loops with concurrent interleavings. In ATVA. 349–364.Google Scholar
- A LSTRUP, S., T HORUP, M., G ØRTZ, I. L., R AUHE, T., AND Z WICK, U. 2014. Union-find with constant time deletions. ACM Transactions on Algorithms, 6. Google ScholarDigital Library
- B ARIK, R. 2005. Efficient Computation of May-Happen-in-Parallel Information for Concurrent Java Programs. In Proceedings of LCPC. 152–169. Google ScholarDigital Library
- C HEN, C., H UO, W., AND F ENG, X. 2012. Making it practical and effective: fast and precise may-happen-in-parallel analysis. In Proceedings of PACT. 469–470. Google ScholarDigital Library
- C ORMEN, T. T., L EISERSON, C. E., AND R IVEST, R. L. 1990. Introduction to algorithms. MIT Press, Cambridge, MA, USA. Google ScholarDigital Library
- D UESTERWALD, E. AND S OFFA, M. 1991. Concurrency analysis in the presence of procedures using a data-flow framework. In Proceedings of the symposium on Testing, analysis, and verification. ACM, 36–48. Google ScholarDigital Library
- F LORES -M ONTOYA, A., A LBERT, E., AND G ENAIM, S. 2013. May-Happen-in-Parallel Based Deadlock Analysis for Concurrent Objects. In Proceedings of FORTE. 273–288.Google Scholar
- G UO, Y., B ARIK, R., R AMAN, R., AND S ARKAR, V. 2009. Work-first and help-first scheduling policies for async-finish task parallelism. In Proceedings of IPDPS. IEEE Computer Society, 1–12. Google ScholarDigital Library
- G UPTA, S. AND N ANDIVADA, V. K. 2015. IMSuite: A Benchmark Suite for Simulating Distributed Algorithms. Journal of Parallel and Distributed Computing 75, 0, 1 – 19.Google ScholarDigital Library
- H ABANERO. 2009. Habanero Java. http://habanero.rice.edu/hj.Google Scholar
- K APLAN, H., S HAFRIR, N., AND T ARJAN, R. E. 2002. Union-find with deletions. In Proceedings of SODA. 19–28. Google ScholarDigital Library
- K RINKE, J. 1998. Static slicing of threaded programs. In Proceedings of PASTE. ACM, New York, NY, USA, 35–42. Google ScholarDigital Library
- L EE, J. K. AND P ALSBERG, J. 2010. Featherweight X10: a core calculus for async-finish parallelism. In Proceedings of SAS. 25–36.Google Scholar
- L EE, J. K., P ALSBERG, J., M AJUMDAR, R., AND H ONG, H. 2012.Google Scholar
- Efficient May Happen in Parallel Analysis for Async-Finish Parallelism. In Proceedings of SAS. 5–23.Google Scholar
- L IN, L. AND V ERBRUGGE, C. 2004. A Practical MHP Information Analysis for Concurrent Java Programs. In Proceedings of LCPC. 194– 208. Google ScholarDigital Library
- M ASTICOLA, S. P. AND R YDER, B. G. 1991. A model of Ada programs for static deadlock detection in polynomial times. In workshop on Parallel and distributed debugging. ACM, 97–107. Google ScholarDigital Library
- M ASTICOLA, S. P. AND R YDER, B. G. 1993. Non-concurrency analysis. In Proceedings PPoPP. ACM, New York, NY, USA, 129–138. Google ScholarDigital Library
- M UCHNICK, S. S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann. Google ScholarDigital Library
- N ANDIVADA, V. K., S HIRAKO, J., Z HAO, J., AND S ARKAR, V. 2013.Google Scholar
- A Transformation Framework for Optimizing Task-Parallel Programs. ACM Trans. Program. Lang. Syst. 35, 1, 3:1–3:48. Google ScholarDigital Library
- N AUMOVICH, G., A VRUIN, G. S., AND C LARKE, L. A. 1998. Data Flow Analysis for Checking Properties of Concurrent Java Programs. Tech. rep., Amherst, MA, USA. Google ScholarDigital Library
- N AUMOVICH, G. AND A VRUNIN, G. S. 1998. A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel. In Proceedings of FSE. 24–34. Google ScholarDigital Library
- N AUMOVICH, G., A VRUNIN, G. S., AND C LARKE, L. A. 1999. An efficient algorithm for computing MHP information for concurrent Java programs. In Proceedings of ESEC/FSE. 338–354. Google ScholarDigital Library
- S ARASWAT, V., B ARD, B., I GOR, P., T ARDIEU, O., AND G ROVE, D. 2012. X10 Language Specification Version 2.3. Tech. rep., IBM.Google Scholar
- S CHIEBER, B. AND V ISHKIN, U. 1988. On finding lowest common ancestors: simplification and parallelization. SIAM J. Comput. 17, 6, 1253–1262. Google ScholarDigital Library
Index Terms
- Improved MHP Analysis
Recommendations
On the fly MHP analysis
PPoPP '20: Proceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingMay-Happen-in-Parallel (MHP) analysis forms the basis for many problems of program analysis and program understanding. MHP analysis can also be used by IDEs (integrated-development-environments) to help programmers to refactor parallel-programs, ...
Incremental and demand-driven points-to analysis using logic programming
PPDP '05: Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programmingSeveral program analysis problems can be cast elegantly as a logic program. In this paper we show how recently-developed techniques for incremental evaluation of logic programs can be refined and used for deriving practical implementations of ...
Reviser: efficiently updating IDE-/IFDS-based data-flow analyses in response to incremental program changes
ICSE 2014: Proceedings of the 36th International Conference on Software EngineeringMost application code evolves incrementally, and especially so when being maintained after the applications have been deployed. Yet, most data-flow analyses do not take advantage of this fact. Instead they require clients to recompute the entire ...
Comments