esyr: (Default)
[personal profile] esyr

Исследование возможности работы с имеющимся графом зависимостей по данным, в частности, на основе собираемой (заранее собранной) статистики по запускам программы (если она имеется).

Утилита parser в процессе своей работы так или иначе строит дерево программы, листьями которого являются операторы программы, а узлами — блоки, которые состоят из своих сыновей. Также, parser поверх этого дерева строит граф зависимостей по данным, где уже строятся связи между блоками одного уровня (если такого не происходит, то эту функциональность легко добавить, как следует из диссертации). Идея состоит в том, чтобы использовать имеющееся дерево для изменения того графа зависимостей, по которому будет генерироваться программа, в частности, с целью её оптимизации. Также, если есть статистика исполнения программы, сгенерированной на основе подобного графа с дополнительной информацией в виде дерева блоков и операторов, то возможно исследование возможностей оптимизации графа путём разбиения и слияния его узлов (слияние возможно и без наличия дополнительно информации), в частности, с применением генетических алгоритмов (что потребует огромное количество запусков, но, тем не менее, может привести к графу зависимостей, близкому к оптимальному).

Также планируется создать некий UI, который позволял бы проделывать операции слияния-разделения вершин графа вручную, а также осуществлять мониторинг процесса оптимизации и просмотр собранной статистики. Вероятно, в целях переносимости, данный UI будет реализован на языке Java.

Кроме того, возможно исследование возможностей добавления к утилите parser возможности генерации результирующих графов зависимостей по данным (то есть тех графов, которые будут использоваться для генерации параллельной программы), вершины которых будут состоять из вычислительно тяжёлых блоков, а не из отдельных операторов (опять же, возможно исследование применимости в данной области генетических алгоритмов, которые будут опираться не на статистику запусков (что логично делать во время оптимизации), а на тесты процессоров и коммуникационной среды целевой подсистемы).

Данное исследование может быть ценно как для того класса программ, который планируется запускать неоднократно (как генерация графа, так и его оптимизация), так и для программ, которые планируется запускать небольшое количество раз (только генерация, оптимизация подразумевает статистику, которая будет собираться во время неоднократного запуска, что сводит в данном случае на нет её эффективность) — для них логично провести исследование критериев генерации графов, близких к оптимальным.


Буду очень рад, если Вы это прочитаете и особенно, если скажете, что тут Вам было непонятно. Это для меня важно.

Date: 2006-10-14 09:09 am (UTC)
From: [identity profile] heavior.livejournal.com
так я и не про компиляцию - я про подход к обработке дерева. Там мысль какая - там "параллелится" но не по компам, а по регистрам - делаится на наименее зависимые команды и они распихиваются по регистрам. А у тебя есть блоки вместо отдельных команд. я думаю, то ты там найдешь что-нить интресное. Безотносительно компиляции.

Date: 2006-10-15 04:58 pm (UTC)
From: [identity profile] esyr.livejournal.com
Ну, м. б.

Profile

esyr: (Default)
esyr

October 2010

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 7th, 2026 01:12 pm
Powered by Dreamwidth Studios