Mercurial > hg > GearsTemplate
view src/parallel_execution/test/multiDimIterator_test.cbc @ 468:ac244346c85d
Change used interface syntax from #include to #interface
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 Dec 2017 18:10:56 +0900 |
parents | 831b7f6fd687 |
children | 3881b91f5820 |
line wrap: on
line source
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #interface "Iterator.h" #include "../../context.h" int cpu_num = 1; int length = 1; int gpu_num = 0; int CPU_ANY = -1; int CPU_CUDA = -1; __code initDataGears(struct LoopCounter* loopCounter, struct TaskManager* taskManager) { // loopCounter->tree = createRedBlackTree(context); loopCounter->i = 0; taskManager->taskManager = (union Data*)createTaskManagerImpl(context, cpu_num, gpu_num, 0); goto meta(context, C_code1); } __code initDataGears_stub(struct Context* context) { struct TaskManager* taskManager = Gearef(context, TaskManager); taskManager->taskManager = 0; struct LoopCounter* loopCounter = Gearef(context, LoopCounter); goto initDataGears(context, loopCounter, taskManager); } __code code1(struct LoopCounter* loopCounter) { printf("cpus:\t\t%d\n", cpu_num); printf("gpus:\t\t%d\n", gpu_num); printf("length:\t\t%d\n", length); /* puts("queue"); */ /* print_queue(context->data[ActiveQueue]->queue.first); */ /* puts("tree"); */ /* print_tree(context->data[Tree]->tree.root); */ /* puts("result"); */ goto createTask1(); } __code createTask1(struct LoopCounter* loopCounter, struct TaskManager* taskManager) { int i = loopCounter->i; if (i < length) { loopCounter->i++; goto meta(context, C_createTask2); } loopCounter->i = 0; taskManager->next = C_exit_code; goto meta(context, taskManager->taskManager->TaskManager.shutdown); } __code createTask2(struct TaskManager* taskManager) { par goto printIterator(iterate(2), exit); par goto printIterator(iterate(2, 2), exit); par goto printIterator(iterate(2, 2, 2), exit); goto createTask1(); } void init(int argc, char** argv) { for (int i = 1; argv[i]; ++i) { if (strcmp(argv[i], "-cpu") == 0) cpu_num = (int)atoi(argv[i+1]); else if (strcmp(argv[i], "-l") == 0) length = (int)atoi(argv[i+1]); else if (strcmp(argv[i], "-cuda") == 0) { gpu_num = 1; CPU_CUDA = 0; } } } int main(int argc, char** argv) { init(argc, argv); struct Context* main_context = NEW(struct Context); initContext(main_context); main_context->next = C_initDataGears; goto start_code(main_context); }