Разработка и логическая отладка программы по шаблону

TempletSDK содержит библиотеку времени исполнения gprt, которая реализует последовательное исполнение, что значительно упрощает отладку. Задачи извлекаются из очереди и завершаются в порядке их добавления в очередь, что является единственным отличием от параллельной версии и не является проблемой при правильной структуре программы. Реализация метода run приведена ниже:

void TBag::run()
{
	task=createTask();
	while(if_job()){                          //проверка наличия задач для обработки
		get(task);                        //вызов метода для получения данных задачи
		task->cur=0;task->send_task();    //заполнение буфера данными задачи
		task->cur=0;task->recv_task();    //чтение данных задачи из буфера
		proc(task);                       //вызов обработчика задачи
		task->cur=0;task->send_result();  //заполнение буфера данными результата обработки
		task->cur=0;task->recv_result();  //чтение результатов обработки из буфера
		put(task);                        //вызов обработчика результатов вычислений
	}
	delete task;
}

В отладочной версии библиотеки времени исполнения симулируется передача данных между вычислительными узлами, несмотря на то, что приложение работает в общей памяти.

Если после начала разработки приложения, уже был выбран отличная от gprt библиотека времени исполнения, то необходимо переключится на неё. Для этого необходимо заменить параметр rtl и путь к заголовочному файлу в файле описания структуры приложения. После чего файл gpTBag.txt должен выглядить подобным образом:

gpTBag.txt
<module id="TB" templet="" rem="">
 
    <include file="../rtl/gprt.h" module=""/>
 
    <param id="rtl" value="GPRT"/>
 
    <assemble id="TaskBag" templet="TBAG" rem="Task bag template">
 
    </assemble>
 
</module>

Генерируемая часть исходного кода приложения обновляется только при сборке проекта.