|

Application of Method of Speculative Execution for Parallelization of Source Code Containing Exceptions Handling

Authors: Romanova T.N., Sidorin A.V. Published: 10.12.2014
Published in issue: #6(99)/2014  
DOI:

 
Category: Informatics & Computing Technology  
Keywords: parallelization, exception handling, speculative execution

This article analyzes problem of parallelization of source code containing handling of exceptional situations. We have investigated an application possibility of method of speculating execution in order to parallelize code fragments that might generate exceptions. Developed algorithms have been described for parallelizing such source codes. We present results of test calculations using the program developed in the Java language that confirm prospects of the approach chosen to solve this problem.

References

[1] Bacon D.F., Graham S.L., Sharp O.J. Compiler transformations for high-performance computing. ACM Computing Surveys, 1994, vol. 26, no. 4, pp. 345-420. Available at: http://pages.cs.wisc.edu/fischer/cs701.f00/surveys.Dec94.pdf (accessed 22 March 2014).

[2] Chan B. Run-time support for the automatic parallelization of java programs. University of Toronto, 2002, 110 p. Available at: http://www.eecg.toron-to.edu/tsa/theses/bryan_chan.pdf (accessed 22 March 2014).

[3] Bradel B.J. Automatic program parallelization using traces. University of Toronto, 2010, 266 р. Available at: https://tspace.library.utoronto.ca/bitstream/1807/26502/1/Bradel_Borys_J_201011_PhD_thesis.pdf (accessed 22 March 2014).

[4] Amini M., Creusillet B., Even S., Keryell R., Goubier O., Guelton S., McMahon J.O., Pasquier Fr.-X.r., Pean Gr., Villalon P. Par4All: From Convex Array Regions to Heterogeneous Computing. Proc. 2nd Int. Workshop on Polyhedral Compilation Techniques. IMPACT 2012. Paris, France, 2012.

[5] Chen M.K., Olukotun K. The Jrpm System for Dynamically Parallelizing Java Programs. Proc. 30th Annual Int. Symp. on Computer Architecture (Proc. ISCA ’03). Stanford University, 2003, vol. 31, iss. 2, pp. 434-446. Doi: 10.1145/871656.859668

[6] Gosling J., Joy B., Steele G., Bracha G., Buckley A. The Java language specification. Java SE 7 Edition, 28.02.2013, pp.303-311. Available at: http://docs.oracle.com/javase/specs/jls/se7/jls7.pdf (accessed 22 March 2014).

[7] Working Draft. Standard for Programming Language C++, 2011, pp. 394-401. Available at: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf (accessed 22 March 2014).

[8] Exception Handling in LLVM. Available at: http://llvm.org/docs/Excep-tionHandling.html (accessed 22 March 2014).

[9] Skochinsky I. Compiler Internals: Exceptions and RTTI. Montreal, 2012. Available at: http://www.hexblog.com/wp-content/uploads/2012/06/Recon-2012-Skochinsky-Compiler-Internals.pdf (accessed 22 March 2014).

[10] Aho A.V., Lam M. S., Sethi R., Ullman J.D. Compilers: Principles, Techniques, & Tools, 2006. Addison Wesley, 2006, 1000 p. (Russ.ed.: Aho A.V., Lam M.S., Seti R., Ul’man Dzh. D. Kompiljatory: principy, tehnologii i instrumentarij. Moscow, Vil’jams Publ., 2008. 1185 p.).

[11] Belevancev A.A., Gajsarjan S.S., Ivannikov V.P. Construction of algorithms of speculative optimizations. Programmirovanie [Program. Comput. Software], 2008, no. 3, pp. 1-22 (in Russ.).

[12] Goetz B., Peierls T., Bloch J., Bowbeer J., Holmes D., Lea D. Java concurrency in practice. Addison-Wesley Professional, 2006. 384 p.