\r
public static void main(String[] args) {\r
int problemSize = 4194304;\r
+ int parallelBranch=32;\r
if (args.length > 0) {\r
problemSize = Integer.parseInt(args[0]);\r
}\r
+ if (args.length > 1) {\r
+ parallelBranch = Integer.parseInt(args[1]);\r
+ }\r
MergeSort4 sort = new MergeSort4();\r
- sort.run(problemSize);\r
+ sort.run(problemSize,parallelBranch);\r
}\r
\r
public MergeSort4() {\r
\r
public void runWorkAndTest() {\r
sese run{\r
+ long startT=System.currentTimeMillis();\r
int output[]=sort(input, 0, input.length);\r
+ long endT=System.currentTimeMillis();\r
+ System.out.println("running time="+(endT-startT));\r
}\r
- sese test{\r
- checkSorted(output);\r
- }\r
+// sese test{\r
+// checkSorted(output);\r
+// }\r
}\r
\r
public int[] serializedSort(int A[], int low, int high) {\r
protected int[] result;\r
protected int size;\r
\r
- public void run(int size) {\r
- this.size = size;\r
+ public void run(int size, int branchSize) {\r
long startT = System.currentTimeMillis();\r
- initialize();\r
+ initialize(size, branchSize);\r
System.out.println("init time=" + (System.currentTimeMillis() - startT));\r
runWorkAndTest();\r
}\r
INSERTION_SIZE = 2000;\r
}\r
\r
- public void initialize() {\r
-\r
- SERIALIZED_CUT_OFF = size / 32;\r
+ public void initialize(int size, int branchSize) {\r
+ this.size = size;\r
+ SERIALIZED_CUT_OFF = size / branchSize;\r
\r
input = new int[size];\r
result = new int[size];\r
\r
}\r
\r
- quickSort(arr, lo, left + 1);\r
+ quickSort(arr, lo, left);\r
quickSort(arr, left + 1, hi);\r
\r
}\r
#raytracer
PROGRAM=MergeSort4
-SOURCE_FILES=MergeSort4.java
+SOURCE_FILES=BMergeSort4.java
BUILDSCRIPT=../../../buildscript
$(BUILDSCRIPT) -nojava $(USEOOO) $(BSFLAGS) $(DISJOINT) -o $(PROGRAM)p $(SOURCE_FILES) -builddir par
single:
- $(BUILDSCRIPT) $(BSFLAGS) -o $(PROGRAM)s -builddir sing $(SOURCE_FILES)
+ $(BUILDSCRIPT) $(BSFLAGS) -thread -o $(PROGRAM)s -builddir sing $(SOURCE_FILES)
ooo:
$(BUILDSCRIPT) $(USEOOO) $(BSFLAGS) $(DISJOINT) -o $(PROGRAM)p -builddir par $(SOURCE_FILES)