Mercurial > hg > Game > Cerium
changeset 1771:8bf0a27f5dff draft
fix missing task
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 23 Nov 2013 03:26:17 +0900 |
parents | bb7f5ae152c7 |
children | 6d173ec5ea9a |
files | TaskManager/kernel/schedule/SchedTask.cc example/many_task/Makefile.macosx example/many_task/main.cc example/many_task/sort.cc |
diffstat | 4 files changed, 10 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/TaskManager/kernel/schedule/SchedTask.cc Sat Nov 23 03:05:43 2013 +0900 +++ b/TaskManager/kernel/schedule/SchedTask.cc Sat Nov 23 03:26:17 2013 +0900 @@ -187,9 +187,6 @@ __debug("[SchedTask:%s]\n", __FUNCTION__); if (cur_index == 0) { // 最初の一つ - while (nextList && !nextList->dim && nextList->cpu != scheduler->id) - nextList=nextList->next; // avoid duplicate sent task - if (nextList == 0) return new SchedNop2Ready(scheduler); SchedTask *nextSched = new SchedTask(); nextSched->init(nextList, &nextList->tasks[0], scheduler, this->tag^1); return nextSched; @@ -205,8 +202,6 @@ return nextSched; } else { nextList = list->next; - while (nextList && !nextList->dim && nextList->cpu != scheduler->id) - nextList=nextList->next; if (nextList == 0) { // もう何もする必要がない return new SchedNop2Ready(scheduler);
--- a/example/many_task/Makefile.macosx Sat Nov 23 03:05:43 2013 +0900 +++ b/example/many_task/Makefile.macosx Sat Nov 23 03:26:17 2013 +0900 @@ -17,7 +17,7 @@ # CFLAGS = -g -Wall# -O9 #-DDEBUG INCLUDE = -I. -I.. -I${CERIUM}/include/TaskManager -LIBS = -L${CERIUM}/TaskManager -lFifoManager `sdl-config --libs` +LIBS = -L${CERIUM}/TaskManager -lGpuManager `sdl-config --libs` -framework opencl .SUFFIXES: .cc .o
--- a/example/many_task/main.cc Sat Nov 23 03:05:43 2013 +0900 +++ b/example/many_task/main.cc Sat Nov 23 03:26:17 2013 +0900 @@ -25,7 +25,7 @@ static double st_time; static double ed_time; -static int length = 1200; +static long length = 1200; CPU_TYPE spe_cpu = SPE_ANY; int use_task_array=0; // prototype @@ -50,7 +50,7 @@ { for (int i = 1; argv[i]; ++i) { if (strcmp(argv[i], "--length") == 0 || strcmp(argv[i], "-l") == 0) { - length = atoi(argv[++i]); + length = (int)atoi(argv[++i]); } if (strcmp(argv[i], "-a") == 0 ) { all = 1; @@ -152,7 +152,7 @@ task_init(); gpu_task_init(); - int cpu = manager->get_cpuNum(); + long cpu = manager->get_cpuNum(); // in case of -cpu 0 if (cpu==0) cpu = 1; if (1) {
--- a/example/many_task/sort.cc Sat Nov 23 03:05:43 2013 +0900 +++ b/example/many_task/sort.cc Sat Nov 23 03:26:17 2013 +0900 @@ -44,15 +44,15 @@ sort_start(SchedTask *manager, void *d, void *e) { Sort *s = (Sort*)manager->get_param(0); - int half_num = s->split_num-1; - static int sort_count = s->split_num; // sort 完了に必要な回数 + long half_num = s->split_num-1; + static long sort_count = s->split_num; // sort 完了に必要な回数 // 一つのタスクで sort する data 数 - int block_num = (s->data_length + s->split_num -1)/s->split_num; - int half_block_num = block_num/2; + long block_num = (s->data_length + s->split_num -1)/s->split_num; + long half_block_num = block_num/2; - int last_block_num = s->data_length - (s->split_num-1)*block_num; - int last_half_block_num = half_block_num+(last_block_num/2); + long last_block_num = s->data_length - (s->split_num-1)*block_num; + long last_half_block_num = half_block_num+(last_block_num/2); if (--sort_count < 0) { return 0;