Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1987237.1987253guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Actor-based parallel dataflow analysis

Published: 26 March 2011 Publication History

Abstract

Defining algorithms in a way which allows parallel execution is becoming increasingly important as multicore computers become ubiquitous. We present IFDS-A, a parallel algorithm for solving context-sensitive interprocedural finite distributive subset (IFDS) dataflow problems. IFDS-A defines these problems in terms of Actors, and dataflow dependencies as messages passed between these Actors. We implement the algorithm in Scala, and evaluate its performance against a comparable sequential algorithm.With eight cores, IFDS-A is 6.12 times as fast as with one core, and 3.35 times as fast as a baseline sequential algorithm. We also found that Scala's default Actors implementation is not optimal for this algorithm, and that a custom-built implementation outperforms it by a significant margin. We conclude that Actors are an effective way to parallelize this type of algorithm.

References

[1]
Agha, G.: Actors: A model of concurrent computation in distributed systems. MIT Press, Cambridge (1986)
[2]
Arora, N.S., Blumofe, R.D., Plaxton, C.G.: Thread scheduling for multiprogrammed multiprocessors. Theory Comput. Systems 34(2), 115-144 (2001)
[3]
Blackburn, S.M., Garner, R., Hoffman, C., Khan, A.M., McKinley, K.S., Bentzur, R., Diwan, A., Feinberg, D., Frampton, D., Guyer, S.Z., Hirzel, M., Hosking, A., Jump, M., Lee, H., Moss, J.E.B., Phansalkar, A., Stefanović, D., VanDrunen, T., von Dincklage, D., Wiedermann, B.: The DaCapo benchmarks: Java benchmarking development and analysis. In: OOPSLA (2006)
[4]
Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theor. Comput. Sci. 410(2-3), 202-220 (2009)
[5]
Hardekopf, B., Lin, C.: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In: PLDI 2007: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 290-299. ACM, New York (2007)
[6]
Hewitt, C., Baker, H.: Laws for communicating parallel processes. In: IFIP (1977)
[7]
Kulkarni, M., Burtscher, M., Inkulu, R., Pingali, K., Casçaval, C.: How much parallelism is there in irregular applications? In: PPoPP (2009)
[8]
Kulkarni, M., Pingali, K., Walter, B., Ramanarayanan, G., Bala, K., Chew, L.P.: Optimistic parallelism requires abstractions. In: PLDI (2007)
[9]
Lee, E.A.: The problem with threads. Computer 39(5), 33-42 (2006)
[10]
Méndez-Lojo, M., Mathew, A., Pingali, K.: Parallel inclusion-based points-to analysis. In: OOPSLA (2010)
[11]
Naeem, N.A., Lhoták, O., Rodriguez, J.: Practical extensions to the IFDS algorithm. In: Gupta, R. (ed.) CC 2010. LNCS, vol. 6011, pp. 124-144. Springer, Heidelberg (2010)
[12]
Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A Comprehensive Step-by-step Guide. Artima Incorporation, USA (2008)
[13]
Panwar, R., Kim, W., Agha, G.: Parallel implementations of irregular problems using highlevel actor language. In: IPPS (1996)
[14]
Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: POPL (1995)
[15]
Rodriguez, J.D.: A Concurrent IFDS Dataflow Analysis Algorithm Using Actors. Master's thesis, University of Waterloo, Canada (2010)
[16]
Stein, L.A.: Challenging the computational metaphor: Implications for how we think. Cybernetics and Systems 30(6), 473-507 (1999)
[17]
Sundaresan, V., Hendren, L., Razafimahefa, C., Vallée-Rai, R., Lam, P., Gagnon, E., Godin, C.: Practical virtual method call resolution for Java. In: OOPSLA (2000)
[18]
Vallée-Rai, R., Co, P., Gagnon, E., Hendren, L., Lam, P., Sundaresan, V.: Soot - a Java bytecode optimization framework. In: CASCON (1999)
[19]
Virding, R., Wikström, C., Williams, M.: Concurrent programming in ERLANG, 2nd edn. Prentice Hall International (UK) Ltd., Hertfordshire (1996)

Cited By

View all
  • (2021)Chianina: an evolving graph system for flow- and context-sensitive analyses of million lines of C codeProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454085(914-929)Online publication date: 19-Jun-2021
  • (2018)Lattice based modularization of static analysesCompanion Proceedings for the ISSTA/ECOOP 2018 Workshops10.1145/3236454.3236509(113-118)Online publication date: 16-Jul-2018

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
CC'11/ETAPS'11: Proceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software
March 2011
305 pages
ISBN:9783642198601
  • Editor:
  • Jens Knoop

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 26 March 2011

Author Tags

  1. IFDS
  2. actors
  3. compilers
  4. concurrency
  5. dataflow analysis
  6. scala

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Chianina: an evolving graph system for flow- and context-sensitive analyses of million lines of C codeProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454085(914-929)Online publication date: 19-Jun-2021
  • (2018)Lattice based modularization of static analysesCompanion Proceedings for the ISSTA/ECOOP 2018 Workshops10.1145/3236454.3236509(113-118)Online publication date: 16-Jul-2018

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media