annotate src/main/java/alice/test/codesegment/local/bitonicsort/SetTask.java @ 345:8f71c3e6f11d

Change directory structure Maven standard
author sugi
date Wed, 16 Apr 2014 18:26:07 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
1 package alice.test.codesegment.local.bitonicsort;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
2
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
3 import alice.codesegment.CodeSegment;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4 import alice.datasegment.CommandType;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
5 import alice.datasegment.Receiver;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
6
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
7 public class SetTask extends CodeSegment {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
8 public static long t;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
9 private Receiver info1 = ids.create(CommandType.PEEK);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10 private Receiver info2 = ids.create(CommandType.TAKE);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
11
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
12 SetTask(){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
13 info1.setKey("sortconf");
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
14 info2.setKey("list");
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
15 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
16
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
17 @Override
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
18 public void run() {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
19 SortConfig conf = info1.asClass(SortConfig.class);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
20 DataList list = info2.asClass(DataList.class);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
21
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
22 int sort_count = conf.getSplitNum()*2;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
23 ods.put("sort_count", sort_count*2);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
24
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
25 int block_num = (conf.getLength() + sort_count- 1) / sort_count;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
26 ods.put("block_num", block_num);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
27
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
28 System.out.println("sort start");
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
29 t = System.currentTimeMillis();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
30 {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
31 int i;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
32 for (i = 0; i < sort_count / 2; i++) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
33 // anonymous datasegmaents should be used.
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
34 ods.put(SetInfo.range[i], new RangeInfo(i,i==(sort_count/2)-1));
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
35 ods.update(SetInfo.array[i*2], list.createDataList(i*2*block_num, block_num));
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
36 ods.update(SetInfo.array[i*2+1], list.createDataList((i*2+1)*block_num, block_num));
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
37 ods.update(SetInfo.count[i], 0);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
38 new SortPhase(SetInfo.range[i],SetInfo.array[i*2],SetInfo.array[i*2+1],0,SetInfo.count[i]);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
39
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
40 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
41 new ShowData(i*2, sort_count);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
42
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
43 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
44
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
45
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
46 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
47
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
48 }