forked from Milkyway-at-home/milkywayathome_client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
152 lines (120 loc) · 5.79 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
--------------------------------------------------------------------------------
Separation:
- separation will do a separation after the integration if given an
output file. There is also an argument to set the random number seed.
--------------------------------------------------------------------------------
Nbody:
- Simulations are described with Lua input files which can be used
to produce an arbitrary initial configuration of particles.
- Various options are available for applying external potentials
to a system.
- Graphics can be run separately and attach to existing simulations,
or can be launched at the same time with the --visualizer argument
to the main process.
- N-body videos can be produced by using a separate program to
record OpenGL. A wrapper script that uses this can be used as
the --visualizer-bin argument to record a video of the
visualization. An example script is at tools/RecordNBodyVideo.sh
- Consistent N-body results between different systems require crlibm
and SSE2 (at least on x86, not sure about other architectures)
- Returning nil from makePotential() for N-body will run the
simulation without an external potential
- Device information is exposed to the workunit through the
deviceInfo table if it is used.
Tests can be run by running:
$ make test
However this runs all of the tests, which takes forever. You can run
(from the tests directory) some core functionality tests with:
$ make check
Other tests can be run with a certain number of bodies depending on
how long you want to wait with:
$ make test_${n}
Currently n = 100, 1024, 10000 are available.
--------------------------------------------------------------------------------
TAO: *TODO: update for latest tao version
-Maximum Likelihood Evaluation Code for running milkyway separation program
-Note: Lua files for TAO searches are different from those used by the separation code.
-The terminal output from this program appears confusing since it mixes the output of each separation run with that of TAO. Using the linux ">" operator to port output to a file only takes the TAO output, making it much clearer.
To run call:
$ ./TAO <options>
General required options:
--separation "<path/to/separation_binary>"
--stars "<path/to/stars_file>"
--params "<path/to/search_paramaters_file>"
--search_type <options>
search type options:
de - differential evolution
ps - particle swarm
snm - synchronous newton method
gd - gradient descent
cgd - conjugate gradient descent
sweep - paramater sweep
Search Specific Options:
de:
optional:
--population_size <int> (default:200)
--maximum_iterations <int> (default:will run forever - Ctrl-C to kill)
--maximum_created <int> (default:will run forever - Ctrl-C to kill)
--maximum_reported <int> (default:will run forever - Ctrl-C to kill)
--parent_scaling_factor <float> (default:1.0)
--differential_scaling_factor <float> (default:1.0)
--crossover_rate <float> (default:0.5)
--int_pairs <int> (default:1)
--parent_selection <option> (defualt:best)
options:
best
random
current-to-best
current-to-random
--recombination_selection <option> (default:binary)
options:
binary
exponential
sum
none
ps:
optional:
--population_size <int> (default:200)
--maximum_iterations <int> (default:will run forever - Ctrl-C to kill)
--maximum_created <int> (default:will run forever - Ctrl-C to kill)
--maximum_reported <int> (default:will run forever - Ctrl-C to kill)
--inertia <float> (default:0.75)
--global_best_weight <float> (default:1.5)
--local_best_weight <float> (default:1.5)
--initial_velocity_scale <float> (default:0.25)
snm:
required:
--iterations <int>
optional:
--rand <double> (randomizes the search parameters by +- the given percent)
gd:
required:
--iterations <int>
optional:
--loop1_max <int> (default:300 iterations)
--loop2_max <int> (default:300 iterations)
--nquad <int> (default:4 iterations for loop 3)
--tol <double> (default:1e-6 for tolerance of dstar in loop 3)
--min_threshold <double_1, double_2, ... , double_n>
(default:line search will not quit if the input direction is very small)
--rand <double> (randomizes the search parameters by +- the given percent)
gd:
required:
--iterations <int>
--cgd_reset <int> **roughly speaking this should be the number of paramaters...
optional:
--loop1_max <int> (default:300 iterations)
--loop2_max <int> (default:300 iterations)
--nquad <int> (default:4 iterations for loop 3)
--tol <doublMaximum Likelihood Evaluation Code for running milkyway separation program
e> (default:1e-6 for tolerance of dstar in loop 3)
--min_threshold <double_1, double_2, ... , double_n>
(default:line search will not quit if the input direction is very small)
--rand <double> (randomizes the search parameters by +- the given percent)
---------------------------------------------------------------------------------------------------
Random notes:
- All give usage with --help/-? arguments
make nbody_release and make separation_release will produce release
tarballs if git and xz are installed and found.
- Make sure when building with MSVC to set built to use Multithreaded
(/MT) for the builds of the various libraries