Preview

Труды Института системного программирования РАН

Расширенный поиск

Обзор масштабируемых систем межмодульных оптимизаций

https://doi.org/10.15514/ISPRAS-2014-26(3)-3

Аннотация

Большинство приложений имеют модульную структуру, но оптимизация таких программ при сборке по раздельной схеме “компиляция-связывание” ограничивается отдельным модулем. И, хотя многие компиляторы поддерживает межмодульные оптимизации, в случае больших приложений их полноценное проведение зачастую неприемлемо ввиду значительных затрат времени и памяти. Решающие эту проблему компиляторные системы, способные производить межмодульные оптимизации с учетом возможностей аппаратуры и требований пользователя по затратам ресурсов, называются масштабируемыми системами межмодульных оптимизаций, или оптимизаций времени связывания. В данной статье мы ставим задачу рассмотреть прежде всего различные подходы к проблеме масштабируемости инфраструктуры относительно потребляемых ресурсов, а не сами межпроцедурные и межмодульные оптимизации или их эффективность в той или иной реализации, так как они по большому счёту не зависят от используемой инфраструктуры. Интерес представляют возможности распараллеливания тех или иных стадий компиляции целой многомодульной программы, а также способы экономии памяти при межмодульном анализе. Данный обзор включает в себя несколько компиляторных систем для языков общего назначения: C, C++, Fortran, - но нередко системы способны оптимизировать и другие языки, если для них реализован соответствующий генератор промежуточного представления. В заключении статьи будут представлены предварительные результаты по масштабированию компонентов связывания инфраструктуры LLVM.

Об авторе

К. Ю. Долгорукова
ИСП РАН
Россия


Список литературы

1. Andrew Ayers, Stuart de Jong, John Peyton, and Richard Schooler. Scalable cross-module optimization. SIGPLAN Not., 33(5):301-312, 1998. ISSN 0362-1340. doi:http://doi.acm.org/10.1145/277652.277745.

2. Andrew Ayers, Richard Schooler, and Robert Gottlieb. Aggressive inlining. SIGPLAN Not., 32(5):134-145, 1997. ISSN 0362-1340. doi: http://doi.acm.org/10.1145/258916.258928.

3. Sungdo Moon, Xinliang D. Li, Robert Hundt, Dhruva R. Chakrabarti, Luis A. Lozano, Uma Srinivasan, and Shin-Ming Liu. SYZYGY - a framework for scalable cross-module IPO. In CGO ’04: Proceedings of the international symposium on Code generation and optimization, page 65, Washington, DC, USA, 2004. IEEE Computer Society. ISBN 0-7695-2102-9.

4. Hewlett-Packard Company, “ELF Object File Format”, http://devrsrc1.external.hp.com/STKT/partner/elf-64-hp.pdf.

5. The Open64 Compiler Suite. www.open64.net. URL http://www.open64.net.

6. Gautam Chakrabarti, Fred Chow. Structure Layout Optimizations in the Open64 Compiler: Design, Implementation and Measurements.

7. Preston Briggs, Doug Evans, Brian Grant, Robert Hundt, William Maddox, Diego Novillo, Seongbae Park, David Sehr, Ian Taylor, Ollie Wild. WHOPR - Fast and Scalable Whole Program Optimizations in GCC. Initial Draft, 12 Dec 2007.

8. Taras Glek, Jan Hubička. Optimizing real-world applications with GCC Link Time Optimization. 3 Nov 2010.

9. Chris Lattner and Vikram Adve. LLVM: A compilation framework for lifelong program analysis and transformation. In Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO04), March 2004.

10. Xinliang David Li, Raksit Ashok, Robert Hundt. Lightweight Feedback-Directed Cross-Module Optimization. CGO’10, April 24-28, 2010, Toronto, Ontario, Canada. ACM 978-1-60558-635-9/10/04.

11. Ануфриенко Андрей Владимирович. Межпроцедурный анализ и оптимизации (I), 29 октября 2013, http://habrahabr.ru/company/intel/blog/199112.

12. Принцип Парето. Википедия, Свободная Энциклопедия. http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%9F%D0%B0%D1%80%D0%B5%D1%82%D0%BE

13. С.С. Гайсарян, Ш.Ф. Курмангалеев, К.Ю. Долгорукова, В.В. Савченко, С.С. Саргсян. Применение метода двухфазной компиляции на основе LLVM для распространения приложений с использованием облачного хранилища. Стр. 315-326. Труды Института системного программирования РАН, том 26, 2014 г. Выпуск 1. ISSN 2220-6426 (Online), ISSN 2079-8156 (Print), DOI: 10.15514/ISPRAS-2014-26(1)-11

14. Andrew Ayers, Stuart de Jong, John Peyton, and Richard Schooler. Scalable cross-module optimization. SIGPLAN Not., 33(5):301-312, 1998. ISSN 0362-1340. doi:http://doi.acm.org/10.1145/277652.277745.

15. Andrew Ayers, Richard Schooler, and Robert Gottlieb. Aggressive inlining. SIGPLAN Not., 32(5):134-145, 1997. ISSN 0362-1340. doi: http://doi.acm.org/10.1145/258916.258928.

16. Sungdo Moon, Xinliang D. Li, Robert Hundt, Dhruva R. Chakrabarti, Luis A. Lozano, Uma Srinivasan, and Shin-Ming Liu. SYZYGY - a framework for scalable cross-module IPO. In CGO ’04: Proceedings of the international symposium on Code generation and optimization, page 65, Washington, DC, USA, 2004. IEEE Computer Society. ISBN 0-7695-2102-9.

17. Hewlett-Packard Company, “ELF Object File Format”, http://devrsrc1.external.hp.com/STKT/partner/elf-64-hp.pdf.

18. The Open64 Compiler Suite. www.open64.net. URL http://www.open64.net.

19. Gautam Chakrabarti, Fred Chow. Structure Layout Optimizations in the Open64 Compiler: Design, Implementation and Measurements.

20. Preston Briggs, Doug Evans, Brian Grant, Robert Hundt, William Maddox, Diego Novillo, Seongbae Park, David Sehr, Ian Taylor, Ollie Wild. WHOPR - Fast and Scalable Whole Program Optimizations in GCC. Initial Draft, 12 Dec 2007.

21. Taras Glek, Jan Hubička. Optimizing real-world applications with GCC Link Time Optimization. 3 Nov 2010.

22. Chris Lattner and Vikram Adve. LLVM: A compilation framework for lifelong program analysis and transformation. In Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO04), March 2004.

23. Xinliang David Li, Raksit Ashok, Robert Hundt. Lightweight Feedback-Directed Cross-Module Optimization. CGO’10, April 24-28, 2010, Toronto, Ontario, Canada. ACM 978-1-60558-635-9/10/04.

24. Аnufrienko Аndrej Vladimirovich. Mezhprotsedurnyj analiz i optimizatsii (I) [Interprocedural analysis and optimizations (I)], October 29, 2013, http://habrahabr.ru/company/intel/blog/199112.

25. Pareto principle. Wikipedia, the free encyclopedia. https://en.wikipedia.org/wiki/Pareto_principle

26. Sergey Gaissaryan, Shamil Kurmangaleev, Kseniya Dolgorukova, Valery Savchenko, Sevak Sargsyan. Primenenie metoda dvukhfaznoj kompilyatsii na osnove LLVM dlya rasprostraneniya prilozhenij s ispol'zovaniem oblachnogo khranilishha. [Applying two-stage LLVM-based compilation approach to application deployment via cloud storage]. Trudy Instituta sistemnogo programmirovaniya RАN [Proceedings of the Institute for System Programming of RAS], vol.26, 2014, Issue 1. ISSN 2220-6426 (Online), ISSN 2079-8156 (Print) pp. 315-326. DOI: 10.15514/ISPRAS-2014-26(1)-11.


Рецензия

Для цитирования:


Долгорукова К.Ю. Обзор масштабируемых систем межмодульных оптимизаций. Труды Института системного программирования РАН. 2014;26(3):69-90. https://doi.org/10.15514/ISPRAS-2014-26(3)-3

For citation:


Dolgorukova K.U. Overview of Scalable Frameworks of Cross-Module Optimization. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2014;26(3):69-90. (In Russ.) https://doi.org/10.15514/ISPRAS-2014-26(3)-3



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)