Применение метода спекулятивного выполнения для распараллеливания исходного кода, содержащего обработку исключений
Авторы: Романова Т.Н., Сидорин А.В. | Опубликовано: 10.12.2014 |
Опубликовано в выпуске: #6(99)/2014 | |
DOI: | |
Раздел: Информатика и вычислительная техника | |
Ключевые слова: распараллеливание, обработка исключений, спекулятивное выполнение |
Рассмотрена проблема распараллеливания программного кода, содержащего обработку исключительных ситуаций. Исследована возможность использования метода спекулятивного выполнения для распараллеливания фрагмента кода, который может сгенерировать исключение. Описаны разработанные алгоритмы для распараллеливания такого рода программных кодов. Приведены результаты тестовых расчетов по разработанной программе на языке Java, подтверждающие перспективность выбранного подхода для решения указанной проблемы.
Литература
[1] Bacon D.F., Graham S.L., Sharp O.J. Compiler transformations for high-performance computing // ACM Computing Surveys. 1994. Vol. 26. No. 4. P. 345-420 [Электронный ресурс] URL: http://pages.cs.wisc.edu/fischer/cs701.f00/surveys.Dec94.pdf (дата обращения: 22.03.20l4).
[2] Chan B. Run-Time Support for the Automatic Parallelization of Java Programs. University of Toronto. 2002. 110 р. [Электронный ресурс] URL: http://www.eecg.toronto.edu/tsa/theses/bryan_chan.pdf (дата обращения: 22.03.2014).
[3] Bradel B.J. Automatic Program Parallelization Using Traces. University of Toronto. 2010. 266 р. [Электронный ресурс] URL: https://tspace.library.utoronto.ca/bitstream/1807/26502/1/Bradel_Borys_J_201011_PhD_thesis.pdf (дата обращения: 22.03.2014).
[4] Par4All: From Convex Array Regions to Heterogeneous Computing / M. Amini, B. Creusillet, S. Even, R. Keryell, O. Goubier, S. Guelton, J.O. McMahon, Fr.-X.r Pasquier, Gr. Pean, P. Villalon // IMPACT 2012. Second International Workshop on Polyhedral Compilation Techniques. 2012.
[5] Chen M.K., Olukotun K. The Jrpm System for Dynamically Parallelizing Java Programs // Proceeding ISCA ’03 Proceedings of the 30th annual international symposium on Computer architecture. Stanford University. 2003. Vol. 31 Iss. 2. P. 434-446. DOI: 10.1145/871656.859668
[6] The Java Language Specification. Java SE 7 Edition / J. Gosling, B. Joy, G. Steele, G. Bracha, A. Buckley. 28.02.2013. Р. 303-311 [Электронный ресурс] URL: http://docs.oracle.com/javase/specs/jls/se7/jls7.pdf (дата обращения: 22.03.2014).
[7] Working Draft. Standard for Programming Language C++. 2011. Р. 394401 [Электронный ресурс] URL: http://www.open-std.org/jtc1/sc22/wg21/docs/pa-pers/2011/n3242.pdf (дата обращения: 22.03.2014).
[8] Exception Handling in LLVM [Электронный ресурс] URL: http://llvm.org/docs/ExceptionHandling.html (дата обращения: 22.03.2014).
[9] Skochinsky I. Compiler Internals: Exceptions andRTTI. Монреаль, 2012 [Электронный ресурс] URL: http://www.hexblog.com/wp-content/uploads/2012/06/Recon-2012-Skochinsky-Compiler-Internals.pdf (дата обращения: 22.03.2014).
[10] Ахо А.В., Лам М.С., Сети Р., Ульман Дж.Д.Компиляторы: принципы, технологии и инструментарий / пер. с англ. М.: Вильямс, 2008. 1185 с.
[11] Белеванцев А.А., Гайсарян С.С., Иванников В.П. Построение алгоритмов спекулятивных оптимизаций // Программирование. 2008. № 3. С. 1-22.
[12] Java Concurrency in Practice / B. Goetz, T. Peierls, J. Bloch, J. Bowbeer, D. Holmes, D. Lea. Addison-Wesley Professional, 2006.