Mercurial > hg > Gears > GearsAgda
annotate src/parallel_execution/examples/twice/main.cbc @ 413:497b154141de
Call CUDAExec by twice_stub
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 14 Sep 2017 22:28:52 +0900 |
parents | 0eba9a04633f |
children | 7679093bdd72 |
rev | line source |
---|---|
409
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 #include <stdio.h> |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 #include <string.h> |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 #include <stdlib.h> |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 #include <unistd.h> |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 #include "../../../context.h" |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 int cpu_num = 1; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 int length = 102400; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 int split = 8; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 int* array_ptr; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 int gpu_num = 0; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 int CPU_ANY = -1; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 int CPU_CUDA = -1; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 void *start_taskManager(struct Context *context) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 goto initDataGears(context, Gearef(context, LoopCounter), Gearef(context, TaskManager)); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 return 0; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 #ifdef USE_CUDAWorker |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 #ifdef USE_CUDA_MAIN_THREAD |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 extern volatile int cuda_initialized; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 #endif |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 #endif |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 __code initDataGears(struct LoopCounter* loopCounter, struct TaskManager* taskManager) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 // loopCounter->tree = createRedBlackTree(context); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 loopCounter->i = 0; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 taskManager->taskManager = (union Data*)createTaskManagerImpl(context, cpu_num, gpu_num, 0); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 #ifdef USE_CUDAWorker |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 #ifdef USE_CUDA_MAIN_THREAD |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 while(! cuda_initialized) {}; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 #endif |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 #endif |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 goto meta(context, C_code1); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 __code initDataGears_stub(struct Context* context) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 struct TaskManager* taskManager = Gearef(context, TaskManager); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 taskManager->taskManager = 0; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 #if (! defined(USE_CUDAWorker) || ! defined(USE_CUDA_MAIN_THREAD)) |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 struct LoopCounter* loopCounter = Gearef(context, LoopCounter); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 goto initDataGears(context, loopCounter, taskManager); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 #else |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 cuda_initialized = 0; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 pthread_t thread; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 pthread_create(&thread, NULL, (void*)&start_taskManager, context); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 while (taskManager->taskManager == 0); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 TaskManager *t = (TaskManager*)taskManager->taskManager; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 TaskManagerImpl *im = (TaskManagerImpl*)t->taskManager; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 struct Queue *q = (Queue *)im->workers[0]; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 createCUDAWorker(context,0,q, im); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 pthread_join(thread,0); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 exit(0); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 #endif |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 __code code1(struct Time* time) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 printf("cpus:\t\t%d\n", cpu_num); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 printf("gpus:\t\t%d\n", gpu_num); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 printf("length:\t\t%d\n", length); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 printf("length/task:\t%d\n", length/split); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 /* puts("queue"); */ |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 /* print_queue(context->data[ActiveQueue]->queue.first); */ |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 /* puts("tree"); */ |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 /* print_tree(context->data[Tree]->tree.root); */ |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 /* puts("result"); */ |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 time->time = (union Data*)createTimeImpl(context); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 time->next = C_createTask1; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 goto meta(context, time->time->Time.start); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 __code code2(struct Time* time, struct TaskManager* taskManager) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 time->next = C_code3; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76 taskManager->next = time->time->Time.end; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 goto meta(context, taskManager->taskManager->TaskManager.shutdown); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 __code code3(struct LoopCounter* loopCounter) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 int i = loopCounter->i; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 if (i < length) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 //printf("%d\n", array_ptr[i]); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 if (array_ptr[i] == (i*2)) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 loopCounter->i++; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 goto meta(context, C_code3); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88 } else |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89 puts("wrong result"); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92 goto meta(context, C_exit_code); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 __code createTask1(struct LoopCounter* loopCounter, struct TaskManager* taskManager) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 Array* array = &ALLOCATE_DATA_GEAR(context, Array)->Array; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
97 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
98 par goto createArray(array, __exit); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
99 |
413
497b154141de
Call CUDAExec by twice_stub
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
411
diff
changeset
|
100 par goto twice(array, iterate(split), __exit); |
409
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
101 goto code2(); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
103 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 void init(int argc, char** argv) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105 for (int i = 1; argv[i]; ++i) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
106 if (strcmp(argv[i], "-cpu") == 0) |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 cpu_num = (int)atoi(argv[i+1]); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108 else if (strcmp(argv[i], "-l") == 0) |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 length = (int)atoi(argv[i+1]); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110 else if (strcmp(argv[i], "-s") == 0) |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 split = (int)atoi(argv[i+1]); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112 else if (strcmp(argv[i], "-cuda") == 0) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113 gpu_num = 1; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 CPU_CUDA = 0; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
115 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117 } |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
119 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 int main(int argc, char** argv) { |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
121 init(argc, argv); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
122 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 array_ptr = NEWN(length, int); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
125 for(int i=0; i<length; i++) |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
126 array_ptr[i]=i; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
127 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
128 struct Context* main_context = NEW(struct Context); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
129 initContext(main_context); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
130 main_context->next = C_initDataGears; |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
131 |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132 goto start_code(main_context); |
4d1e3697a6b8
Add twice cbc file
Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133 } |