Проект Templet

акторный фреймворк для запуска задач
на множестве ядер, кластерах и в облаках
templet.ssau.ru

Инструменты пользователя

Инструменты сайта


templet:пример:hello_bagoftask_world

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

templet:пример:hello_bagoftask_world [2013/10/27 08:45] – создано nazarovtemplet:пример:hello_bagoftask_world [2013/10/27 11:38] (текущий) – удалено artamonov
Строка 1: Строка 1:
-Разработка параллельных и распределённых приложений с использованием шаблона состоит из описания структуры приложения: 
-<code xml gpTBag.txt> 
-<module id="TB" templet="" rem=""> 
  
-<include file="../Rtl/gprtmpi.h" module=""/> 
- 
-<param id="rtl" value="GPRTMPI"/> 
- 
-<assemble id="TaskBag" templet="TBAG" rem="Task bag template"> 
- 
-</assemble> 
- 
-</module> 
-</code> 
-Разработки кода иницирующего начало вычислений с помощью библиотек времени исполнения из пакета TempletSDK 
-<code cpp TBag.cpp> 
-#include "gpTBag.h" 
-#include <stdio.h> 
-#include "time_measurement.h" 
- 
-int main(int argc, char* argv[]){ 
- int prc_num = 4; 
- unsigned long start = get_current_time_in_us(); 
- TB::TaskBag bag(prc_num, &argc, &argv); 
- bag.run(); 
- printf("Done in %6.6f s\n", (get_current_time_in_us()-start)/1000000.0 ); 
- return 0; 
-} 
-</code> 
-Сгенерированного по файлу структуры приложения заголовочного файла с пользовательскими секциями 
-<code cpp gpTBag.h> 
-#ifndef _GRAPH_PLUS_MODULE_TB 
-#define _GRAPH_PLUS_MODULE_TB 
- 
-#include <string.h> 
-#include <assert.h> 
- 
-#include "../Rtl/gprtmpi.h" 
- 
-/*$GPBS$TB$!include!*/ 
-#include <math.h> 
-#include <stdio.h> 
-#include <stdlib.h> 
- 
-/*$GPBS$*/ 
- 
-// 
-namespace TB{ 
- 
-//Task bag template 
-class TaskBag:public GPRTMPI::TBag{ 
-public: 
- class TaskBagTask:public TBag::Task{ 
- public: 
- TaskBagTask(); 
- virtual~TaskBagTask(); 
- 
- void send_task(); 
- void recv_task(); 
- void send_result(); 
- void recv_result(); 
- 
-/*$GPBS$TaskBag$!taskuserdata!*/ 
-/*$GPBS$*/ 
- }; 
-public: 
- TaskBag(int num_prc, int *argc, char ***argv); 
- virtual ~TaskBag(); 
- TBag::Task* createTask(); 
- 
- bool if_job(); 
- void put(Task*t); 
- void get(Task*t); 
- void proc(Task*t); 
-/*$GPBS$TaskBag$!userdata!*/ 
-/*$GPBS$*/ 
-}; 
-} 
-#endif 
-</code> 
-И сгенерированного по файлу структуры приложения файла исходного кода с реализацией классов с пользовательскими секциями 
-<code cpp gpTBag.cpp> 
-#include "gpTBag.h" 
- 
-namespace TB{ 
-/*$GPBS$TB$!globals!*/ 
-// put global variables and funcs here 
-/*$GPBS$*/ 
-//////////////////////class TaskBag//////////////////// 
-//Task bag template 
-TaskBag::TaskBag(int num_prc, int *argc, char ***argv):TBag(num_prc, argc, argv) 
-{ 
-/*$GPBS$TaskBag$!constructor!*/ 
-/*$GPBS$*/ 
-} 
- 
-TaskBag::~TaskBag() 
-{ 
-/*$GPBS$TaskBag$!destructor!*/ 
-/*$GPBS$*/ 
-} 
- 
-TaskBag::TaskBagTask::TaskBagTask():TBag::Task() 
-{ 
-/*$GPBS$TaskBag$!taskconstructor!*/ 
-/*$GPBS$*/ 
-} 
- 
-TaskBag::TaskBagTask::~TaskBagTask() 
-{ 
-/*$GPBS$TaskBag$!taskdestructor!*/ 
-/*$GPBS$*/ 
-} 
- 
-void TaskBag::TaskBagTask::send_task() 
-{ 
-/*$GPBS$TaskBag$!task_send_task!*/ 
-/*$GPBS$*/ 
-} 
- 
-void TaskBag::TaskBagTask::recv_task() 
-{ 
-/*$GPBS$TaskBag$!task_recv_task!*/ 
-/*$GPBS$*/ 
-} 
- 
-void TaskBag::TaskBagTask::send_result() 
-{ 
-/*$GPBS$TaskBag$!task_send_result!*/ 
-/*$GPBS$*/ 
-} 
- 
-void TaskBag::TaskBagTask::recv_result() 
-{ 
-/*$GPBS$TaskBag$!task_recv_result!*/ 
-/*$GPBS$*/ 
-} 
- 
-/*$GPBS$TaskBag$!usercode!*/ 
- 
-// place your code here 
-/*$GPBS$*/ 
- 
-GPRTMPI::TBag::Task* TaskBag::createTask(){return new TaskBagTask;} 
- 
-bool TaskBag::if_job(){ 
-/*$GPBS$TaskBag$if_job*/ 
- return 0; 
-/*$GPBS$*/ 
-} 
- 
-void TaskBag::put(Task*t){ 
- TaskBagTask* mt=(TaskBagTask*)t; 
-/*$GPBS$TaskBag$put*/ 
-/*$GPBS$*/ 
-} 
- 
-void TaskBag::get(Task*t){ 
- TaskBagTask* mt=(TaskBagTask*)t; 
-/*$GPBS$TaskBag$get*/ 
-/*$GPBS$*/ 
-} 
- 
-void TaskBag::proc(Task*t){ 
- TaskBagTask* mt=(TaskBagTask*)t; 
-/*$GPBS$TaskBag$proc*/ 
-/*$GPBS$*/ 
-} 
- 
-} 
-</code> 
templet/пример/hello_bagoftask_world.1382863544.txt.gz · Последнее изменение: 2013/10/27 08:45 — nazarov