-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathREADME
76 lines (56 loc) · 3.25 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
===================================================
Source code organization
Compiler is written in CL and is placed in cl-meld
Virtual machine is written in C++ and is placed in meld
In order to compile programs we first use the CL compiler and then the C++ compiler.
===================================================
How to compile CLM programs
Go to meld/benchs
Run script ./compile.sh progs/<program>.meld
Compiler will generate a code/<program>.cpp file
Go back to the meld directory: cd ..
Compile final program with ./compile.sh benchs/code<program>.cpp
===================================================
How to run CLM programs
After step 4, programs will be placed in ~/meld/benchs/code/<program>
Run with './benchs/code/<program> -c thX' where X is the number of executing threads
Many other flags are supported by CLM programs:
-t: Shows execution time.
-s: Shows results of the program.
Some programs also accepted input arguments: add -- and then a list of arguments after the virtual machine arguments presented before.
Files in meld/benchs/args/<program> indicate which arguments are used for benchmarks.
===================================================
Running SSSP programs
Compile shortest-DATASET.meld, where DATASET is the graph data set.
Example: shortest-uspowergrid.meld
Execute as ./benchs/code/shortest-uspowergrid -c thX -t -- N
where N is a positive number and represents how many source nodes are going to be used (a node is used if NodeId % N == 0). Use N=1 for uspowergrid.
By default, SSSP runs with coordination. Add flag -n to run it without coordination.
In order to compile programs with datasets such as LiveJournal and Orkut, please do the following:
$ cd meld/benchs/
$ make progs/data/orkut.txt
$ make progs/data/weighted-livejournal.txt
Afterwards, compile programs are usual. Use the following arguments:
- orkut: 3000000
- livejournal: 3000001
(All arguments can be inspected by reading meld/benchs/args/shortest-livejournal, for example).
Note that it will take a while to pre-process these programs. The CLM compiler has not been optimized enough to process huge graphs. Remember to run the virtual machine with enough memory.
===================================================
Running N Queens programs
Program available as 8queens-N-CONF.meld, where N is the size of the board and CONF is the configuration.
Example: 8queens-13.meld to run the 13 queens program without any coordination. The coordinated programs are available with CONF=bottom-static, for example.
===================================================
Running MiniMax programs
Use program min-max-tictactoe-big.meld and min-max-tictactoe-big-coord.meld (to use the regular and the coordinated program, respectively).
===================================================
Running HT programs
Programs available as:
- new-heat-transfer-120-coord0.meld (Works as the regular and coordinated version, use -n to run without coordination).
- new-heat-transfer-120-coord.meld (Works as the Local version).
For both of these programs use the following arguments: 0.0001 0.005
===================================================
Running LBP/SBP
Programs available as:
- belief-propagation-400.meld (LBP)
- splash-bp-400 (SBP): use 100 as program argument
They are also available in other sizes.