Strict Standards: Non-static method mod_db::open_base() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 33

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/clavire-edu/public_html/cms/classes/mod_db.php on line 21

Strict Standards: Non-static method mod_db::db_query() should not be called statically in /var/www/clavire-edu/public_html/cms/classes/mod_db.php on line 31

Strict Standards: Non-static method mod_db::db_query() should not be called statically in /var/www/clavire-edu/public_html/cms/classes/mod_db.php on line 32

Strict Standards: Non-static method mod_db::db_query() should not be called statically in /var/www/clavire-edu/public_html/cms/classes/mod_db.php on line 33
CLAVIRE
Strict Standards: Non-static method mod_safe::get_param() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 59

Strict Standards: Non-static method mod_db::escape_string() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 59

Strict Standards: Non-static method mod_db::db_query() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 60

Strict Standards: Non-static method mod_db::db_objects() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 61
КРАТКАЯ ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

В предыдущих лабораторных работах мы научились строить простейшие композитные приложения, состоящие из одного шага. Фраза «простейшие композитные приложения» не означает, что решаемая с помощью данного приложения является простой. Запускаемый в шаге пакет может реализовывать очень сложный алгоритм решения нетривиальной задачи. Данный алгоритм может предусматривать распараллеливание или выполняться только последовательно. Как мы уже говорили ранее, все заботы о запуске пакетов, включающие настройку окружений запуска и режимов берёт на себя CLAVIRE.

Рассмотрим теперь создание многошаговых приложений, в которых могут задействоваться несколько пакетов. При этом результат выполнения одного пакета может являться входным файлов для другого пакета.

В лабораторной работе №1 формировалась однокластераная сеть. Такую задачу решал пакет CNM.

Теперь рассмотрим пакет, который выполняет вычисление относительных частот степеней вершин на основе упрощённого описания однокластерной сети. Такой пакет называется StatNet. На вход они принимает файл c описанием сети упрощённом формате, который соответствует одному из выходных файлов пакета CNM (output.dat), а на выходе создаёт текстовый файл (output.out) с одной единственной строкой – с последовательностью относительных частот степеней вершин сети. Каждое число является вещественным, что очевидно. Разделителем между целой и вещественной частью числа является точка. Все числа перечислены через пробел.

Мощный пакет программ для решения математических задач SciLab доступен через пакет CLAVIRE SciLabAdd. Данный пакет реализуют частную возможность SciLab визуализировать ряды данных в виде гистограмм или графиков. На вход данному пакету подаётся текстовый файл со строками рядов чисел, разделённых пробелами (файловый параметр inFile), а также форма визуализации (строковый параметр graf_type). Последний параметр может принимать следующие значения:

· OneCurve – визуализация одного временного ряда в виде одного графика;

· Histogramm – визуализация одного временного ряда в виде гистограммы;

· NodesStateCounts – представление данных о распространении информации по сети (два графика – количество узлов, распространяющих информацию и число узлов, не распространяющих информацию – см. описание пакета ISM в теоретической части лабораторной работы 4);

Если параметр graph_type принимает одно из первых двух значений, то исходный файл, передаваемый через параметр inFile, должен содержать только одну строку. Если graph_type принимает значение TwoCurves, то исходный файл, очевидно, должен содержать только 2 строки.

Пакет SciLabAdd на выходе генерирует файл с изображением формата png.

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

Листинг 4.4. Формальное описание использования результата ранее выполненного шага

<имя параметра шага> <wsns>=<wsns>

<имя ранее выполненного шага>.Result.outs <LSQ>

<имя выходного файла> <RSQ>,

Листинг 4 показывает, что параметру шага можно присвоить значение результата одного из ранее выполненных шагов. Если выполняется такое присваивание, то сервисы CLAVIRE на этапе выполнения композитного приложения автоматически выполняют барьерную синхронизацию потока: пакет текущего шага не будет запущен до тех пор, пока не будет завершён пакет того шага, результаты которого задействуются. Пример использования результата работы ранее выполненного шага приведён в листинге 4.5.

Листинг 4.5. Пример использования результата ранее выполненного шага

step First_Step runs Package_1 (

...

);

step Second_Step runs Package_2 (

...

inData = First_Step.Result.outs["output.out"],

);

В выше приведённом примере шаг Second_Step зависит от шага First_Step по данным – файл «output.out». Такую зависимость называю неявной зависимостью по данным.


Strict Standards: Non-static method mod_db::db_objects() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 61


обратно к оглавлению
Strict Standards: Non-static method mod_db::close_base() should not be called statically in /var/www/clavire-edu/public_html/content/frames/doca.php on line 77