weissj3/milkywayathome_client
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
--------------------------------------------------------------------------------
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