|
||||||
Краткая информацияПреобразователь графа в C++ программуВершины графа представляются как функции с пустыми аргументами. Все необходимые вершине данные получаются либо из инициализированных заранее в «корне» графа глобальных переменных, либо через передачу их от других вершин графа по рёбрам. Автоматическая сборка исходного кода вершины графа в С++ функцию производится следующим образом. Сперва идёт декларация служебных переменных, затем идёт код «головы» вершины, затем вставляется MPI-код, ответственный за приём данных по входящим в вершину рёбрам, затем идёт «тело» — собственно обработка данных, затем код, ответственный за архивацию в память данных, которые будут переданы этой вершиной графа другим вершинам, затем идёт «хвост» и на этом функция заканчивается (см. рисунок). Действия, связанные непосредственно с передачей данных и управлением вызовами вершин на процессорах никак не видны на этапе создания текстового файла с графом, тем самым достигается независимость получаемой параллельной программы от конкретной многопроцессорной системы. Полученный файл с вершинами, как было сказано выше, компилируется и связывается с подсистемой, осуществляющей управление вызовами вершин и назначающей передачи данных между процессорами (MPI-нитями) по определённым рёбрам графа. |
||||||
Главная страница Список публикаций Руководство Внешние ссылки Ресурсы SourceForge |
||||||
Администратор: Алексей Сальников |