title: Programming library for heterogeneous embedded architectures
metadata.name: dc.contributor.advisor
metadata.value: Мордвинов Дмитрий Александрович
metadata.lang: ru_RU
metadata.name: dc.contributor.author
metadata.value: Киргизов Григорий Валерьевич
metadata.lang: ru_RU
metadata.name: dc.contributor.author
metadata.value: Kirgizov Grigorii
metadata.lang: en_GB
metadata.name: dc.contributor.editor
metadata.value: Кириленко Яков Александрович
metadata.lang: ru_RU
metadata.name: dc.contributor.editor
metadata.value: Kirilenko Iakov Аleksаndrovich
metadata.lang: en_GB
metadata.name: dc.date.accessioned
metadata.value: 2018-07-26T15:26:23Z
metadata.lang: -
metadata.name: dc.date.available
metadata.value: 2018-07-26T15:26:23Z
metadata.lang: -
metadata.name: dc.date.issued
metadata.value: 2018
metadata.name: dc.identifier.other
metadata.value: 040020
metadata.lang: en_GB
metadata.name: dc.identifier.uri
metadata.value: http://hdl.handle.net/11701/13593
metadata.lang: -
metadata.name: dc.description.abstract
metadata.value: Встраиваемые системы с гетерогенной архитектурой состоят из управляющего и периферийных процессоров. Разработка ПО для таких систем представляет заметные сложности, требуя различные наборы инструментов для каждой составляющей гетерогенной системы. Достижение высокой эффективности также становится сложной задачей. Более того, зачастую встраиваемые системы требуют настройки во время исполнения, что тяжело обеспечить обычными средствами.  Эта работа представляет C-подобный предметно-ориентированный язык для метапрограммирования и библиотеку, предоставляющую единый интерфейс для программирования периферийных процессоров с использованием этого языка. Это позволяет разрешить упомянутые проблемы.  Подход данной работы — это динамическая кодогенерация. Код, написанный на предметно-ориентированном языке, транслируется в LLVM IR и затем компилируется во время исполнения. Это открывает возможность динамических оптимизаций кода, например, специализации функций для определенных значений, известных только во время исполнения. Гибкая архитектура библиотеки обеспечивает простую расширяемость на любые платформы, поддерживаемые LLVM.  В работе также приводятся апробация библиотеки на нескольких системах и демонстрация возможности динамических оптимизаций.
metadata.lang: ru_RU
metadata.name: dc.description.abstract
metadata.value: Embedded platforms with heterogeneous architecture consist of a primary and one or more secondary processors. Development of software systems for these platforms poses substantial difficulties, requiring a distinct set of tools for each constituent of the heterogeneous system. It also makes achieving high efficiency the more difficult task. Moreover, many use cases of embedded systems require runtime configuration, that can't be easily achieved with usual approaches.  This work presents a C-like metaprogramming DSL and a library that provides a unified interface for programming secondary processors of heterogeneous systems with this DSL. Together they help to resolve aforementioned problems.  The approach behind the library is a dynamic code generation: the DSL translates to LLVM IR and then compiles to native executable code at runtime. It opens a possibility of dynamic code optimizations, e.g. runtime function specialization for specific parameters known only at runtime. Flexible library architecture allows simple extensibility to any target platform supported by LLVM.  Work also provides a system approbation on different platforms and a demonstration of dynamic optimizations capability.
metadata.lang: en_GB
metadata.name: dc.language.iso
metadata.value: ru
metadata.name: dc.subject
metadata.value: метапрограммирование
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: кодогенерация
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: встроенный предметно-ориентированный язык
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: гетерогенные системы
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: встроенные системы
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: metaprogramming
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: code generation
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: embedded DSL
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: heterogeneous systems
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: embedded systems
metadata.lang: en_GB
metadata.name: dc.title
metadata.value: Programming library for heterogeneous embedded architectures
metadata.lang: en_GB
metadata.name: dc.title.alternative
metadata.value: Библиотека программирования гетерогенных встраиваемых архитектур
metadata.lang: ru_RU
resources.filename: bachelor_thesis.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/13593/1/bachelor_thesis.pdf
resources.format: Adobe PDF
resources.description: Article
resources.size: 262,14 kB
resources.filename: reviewSV_review_kirgizov2018.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/13593/2/reviewSV_review_kirgizov2018.pdf
resources.format: Adobe PDF
resources.description: ReviewRev
resources.size: 41,87 kB
resources.filename: reviewSV_stt07643_Mordvinov_Dmitrij_Aleksandrovich_(reviewer)(Ru).txt
resources.url: https://dspace.spbu.ru/bitstream/11701/13593/3/reviewSV_stt07643_Mordvinov_Dmitrij_Aleksandrovich_%28reviewer%29%28Ru%29.txt
resources.format: Text
resources.description: ReviewRev
resources.size: 8,16 kB
resources.filename: reviewSV_st007829_Kirilenko_YAkov_Aleksandrovich_(supervisor)(Ru).txt
resources.url: https://dspace.spbu.ru/bitstream/11701/13593/4/reviewSV_st007829_Kirilenko_YAkov_Aleksandrovich_%28supervisor%29%28Ru%29.txt
resources.format: Text
resources.description: ReviewSV
resources.size: 3,53 kB