comparison example/word_count_test/ppe/Print.cc @ 713:f725c6455d19

remove SIMPLE_TASK conditional
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 16 Dec 2009 15:27:46 +0900
parents 4af9d20cf3af
children
comparison
equal deleted inserted replaced
712:4661eaa48b77 713:f725c6455d19
8 SchedDefineTask1(Print,run_print); 8 SchedDefineTask1(Print,run_print);
9 9
10 static int 10 static int
11 run_print(SchedTask *s, void *rbuf, void *wbuf) 11 run_print(SchedTask *s, void *rbuf, void *wbuf)
12 { 12 {
13 #ifdef SIMPLE_TASK
14 WordCount *w = *(WordCount**)rbuf; 13 WordCount *w = *(WordCount**)rbuf;
15 unsigned long long *idata = w->o_data; 14 unsigned long long *idata = w->o_data;
16 // long task_num = w->task_num; 15 // long task_num = w->task_num;
17 long status_num = w->status_num; 16 long status_num = w->status_num;
18 int out_task_num = w->out_task_num; 17 int out_task_num = w->out_task_num;
21 * head_flag 20 * head_flag
22 * o_data[0] 21 * o_data[0]
23 * o_data[1] 22 * o_data[1]
24 * 23 *
25 */ 24 */
26 #else
27 unsigned long long *idata = (unsigned long long*)s->get_input(rbuf, 0);
28 unsigned long long *head_tail_flag = (unsigned long long*)s->get_input(rbuf, 1);
29 // long task_num = (long)s->get_param(0);
30 long status_num = (long)s->get_param(1);
31 int out_task_num = (int)s->get_param(2);
32 int pad = (int)s->get_param(3);
33 #endif
34 unsigned long long word_data[2]; 25 unsigned long long word_data[2];
35 26
36 int flag_cal_sum = 0; 27 int flag_cal_sum = 0;
37 //printf("pad %d\n",pad); 28 //printf("pad %d\n",pad);
38 29
73 64
74 for (int i = 0; i < status_num; i++) { 65 for (int i = 0; i < status_num; i++) {
75 word_data[i] = 0; 66 word_data[i] = 0;
76 } 67 }
77 68
78 #ifdef SIMPLE_TASK
79 for (int i = 0; i < out_task_num ; i++) { 69 for (int i = 0; i < out_task_num ; i++) {
80 word_data[0] += idata[i*w->out_size+0]; 70 word_data[0] += idata[i*w->out_size+0];
81 word_data[1] += idata[i*w->out_size+1]; 71 word_data[1] += idata[i*w->out_size+1];
82 unsigned long long *head_tail_flag = 72 unsigned long long *head_tail_flag =
83 &idata[i*w->out_size+2]; 73 &idata[i*w->out_size+2];
84 if((i!=out_task_num-1)&& 74 if((i!=out_task_num-1)&&
85 (head_tail_flag[1] == 1) && (head_tail_flag[4] == 0)) { 75 (head_tail_flag[1] == 1) && (head_tail_flag[4] == 0)) {
86 flag_cal_sum++; 76 flag_cal_sum++;
87 } 77 }
88 } 78 }
89 #else
90 for (int i = 1; i < out_task_num * pad - pad; i += pad) {
91 //printf("%llu ",head_tail_flag[i]);
92 //printf("%llu\n",head_tail_flag[i+1]);
93 if((head_tail_flag[i] == 1) && (head_tail_flag[i+1] == 0)) {
94 flag_cal_sum++;
95 }
96 }
97
98 for (int i = 0; i < out_task_num*status_num; i += status_num) {
99 for (int j = 0; j < status_num; j++) {
100 word_data[j] += idata[i+j];
101 }
102 }
103 #endif
104 79
105 word_data[0] += flag_cal_sum; 80 word_data[0] += flag_cal_sum;
106 81
107 for (int i = status_num-1; i >=0; i--) { 82 for (int i = status_num-1; i >=0; i--) {
108 s->printf("%llu ",word_data[i]); 83 s->printf("%llu ",word_data[i]);