annotate src/parallel_execution/worker.c @ 121:bb8be1820302

Rename Code Gears
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 26 Jul 2016 13:06:46 +0900
parents 4df53a60e59a
children a086857e1812
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
95
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <libkern/OSAtomic.h>
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include "context.h"
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include "origin_cs.h"
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
121
bb8be1820302 Rename Code Gears
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 119
diff changeset
6 __code getQueue1(struct Context* context, struct Queue* queue, struct Element* element) {
95
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 if (queue->first == 0)
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 return;
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
119
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
10 element = queue->first;
109
059b26a250cc Change put_queue process
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 103
diff changeset
11 if (__sync_bool_compare_and_swap(&queue->first, first, first->next)) {
95
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 queue->count--;
119
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
13 goto meta(context, context->next)
95
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 } else {
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 goto meta(context, GetQueue);
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 }
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 }
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
121
bb8be1820302 Rename Code Gears
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 119
diff changeset
19 __code getQueue1_stub(struct Context* context) {
119
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
20 goto getQueue(context, &context->data[Queue]->queue, &context->data[Element]->element);
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
21 }
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
22
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
23 __code getQueue2(struct Context* context, struct Element* element, struct Node* node) {
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
24 context->next = GetQueue;
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
25 stack_push(context->code_stack, &context->next);
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
26
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
27 context->next = ((struct Task *)(element->data))->code;
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
28 node->key = ((struct Task *)(element->data))->key;
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
29
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
30 struct Traverse *t = &context->data[Traverse]->traverse;
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
31 t->next = GetQueue;
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
32 goto meta(context, Get);
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
33 }
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
34
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
35 __code getQueue2_stub(struct Context* context) {
4df53a60e59a Add dependency function
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 113
diff changeset
36 goto getQueue(context, &context->data[Element]->element, &context->data[Node]->node);
95
3e28ee215c0e modify twice, use OSAtomiceCompareAndSwap
Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 }
101
8987cf13d5bb Add Allocate macro
innparusu
parents: 98
diff changeset
38
8987cf13d5bb Add Allocate macro
innparusu
parents: 98
diff changeset
39 #ifdef USE_CUDA
98
d400948dbbab add Cuda infomation to context
ikkun
parents: 95
diff changeset
40 __code twiceGpu(struct Context* context) {
d400948dbbab add Cuda infomation to context
ikkun
parents: 95
diff changeset
41 cuMemcpyHtoDAsync(context,context,context,context->stream);
d400948dbbab add Cuda infomation to context
ikkun
parents: 95
diff changeset
42 cuLaunchkanel();
d400948dbbab add Cuda infomation to context
ikkun
parents: 95
diff changeset
43 cuMemcpyDtoHAsync();
d400948dbbab add Cuda infomation to context
ikkun
parents: 95
diff changeset
44 }
101
8987cf13d5bb Add Allocate macro
innparusu
parents: 98
diff changeset
45 #endif