-
Notifications
You must be signed in to change notification settings - Fork 15
Enabling Distributed Processing #61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
markmac99
wants to merge
266
commits into
wmpg:master
Choose a base branch
from
markmac99:distrib_processing
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
266 commits
Select commit
Hold shift + click to select a range
81a2969
simplify migration to sqlite
markmac99 9a71d85
keep track of which traj we're doing
markmac99 297da7c
improve archiving and add merging support
markmac99 f1f5f5e
updates to improve handling of operation modes and remote data
markmac99 6eb44fa
improve documentation
markmac99 9024741
Merge branch 'wmpg:master' into distrib_processing
markmac99 1afaff1
bugfix to create phase1 trajs properly
markmac99 625ee4d
bugfix in when to save phase1
markmac99 3684014
be a bit less verbose
markmac99 7f5677a
remove unnecessary message
markmac99 21fa47e
reinstate prior behaviour to skip ignored stations when retrying solu…
markmac99 2c1ab8b
simplify calls to addTrajectory
markmac99 610cfa5
create trajectories db in sqlite
markmac99 22e9932
add trajectories db as json file
markmac99 558ce81
bugfixes
markmac99 fd228a9
updates to handle trajectory sqlite db better
markmac99 b82689b
dont load the traj db in MCMODE2 as we don't need it
markmac99 8331148
some support to analyse the traj db
markmac99 62b45cd
improve logging
markmac99 02b6c0e
handle verbose flags better
markmac99 13e6836
more debug
markmac99 9ec2eaa
remove commitnow as its causing issues
markmac99 7a8d4e3
debug
markmac99 36a9f0b
debug
markmac99 ebf5473
typo
markmac99 7e88468
more doc and debug to track down issue
markmac99 2eaeb91
fix bug in fails table
markmac99 ad4eec4
bugfix
markmac99 d27a13b
simplify code
markmac99 6c28d9d
bugfixes in correlateDB
markmac99 863d7e2
avoid removing trajectories incorrectly
markmac99 50eb9df
ting bug in reporting of removed traj
markmac99 36a880b
Client-mode remote data processing
markmac99 bb7b502
reduce amount of legacy data thats loaded
markmac99 23b258b
make dates tz aware
markmac99 be29951
improve logging
markmac99 5eebd9d
more tweaks to copying legacy data
markmac99 a87fb16
bugfix
markmac99 71e20aa
bugfix
markmac99 6083b46
remove unncessary debug
markmac99 5f986c7
don't try to save an unopened database
markmac99 6e8bb88
Updates for remote client datahandling
markmac99 9cd2d00
support to signal when a client is ready for data
markmac99 458170d
more work on master mode
markmac99 138d672
fix bug in unpairing if db is empty
markmac99 69c99ce
fix bug in unpairing if db is empty
markmac99 fd38bd5
make uploaded database names unique
markmac99 6aac11f
oops, make sure phase1 dir exists even in mc mode
markmac99 ce2877b
small bugfixes
markmac99 3622d0c
remove some excess verbosity
markmac99 67fefbe
indicate how many are being solved
markmac99 c4eecac
bugfix to handle nans in the database
markmac99 92f865a
add log suffix
markmac99 b271037
add log suffix properly
markmac99 1d366bf
catch SFTP fails
markmac99 333b48e
more small changes to protect against sftp fails
markmac99 c224ac1
defend against sftp failures
markmac99 47a2d27
bugfix to prevent phase2 crash merging data
markmac99 6da8bbb
add function to copy json data over
markmac99 83a2b72
bugfix: only move phase1 if client was doing phase1
markmac99 6ece9ab
make sure folders exist
markmac99 c9bb9bd
initialise remote data handling in the right place for phase2
markmac99 c9ede51
improve logging
markmac99 cda60ba
prevent crash in mcmode 2
markmac99 fbd7899
print operation mode more frequently
markmac99 7677acc
update remote data handling to actually move trajectories!
markmac99 21c94b4
slight improvement in shutdown messaging
markmac99 1b73810
bugfix
markmac99 8d8a325
chmod upload folders as needed
markmac99 cb20be5
fix perms on upload folders
markmac99 db2f17c
add some verbosity for debug
markmac99 e753a1e
bugfix in pairing routine
markmac99 b2cf365
Merge branch 'wmpg:master' into distrib_processing
markmac99 b12504a
rename archiveoldrecords to archivemonths
markmac99 379a5e9
Merge branch 'distrib_processing' of github.com:markmac99/WesternMete…
markmac99 4d212af
remove unnecessasry flag
markmac99 22dadc5
whoops changed param name incorrectly
markmac99 86721cd
initialise obs and traj db
markmac99 508f40e
a bit of documentation
markmac99 bd31fa0
check status from merge functions
markmac99 8de1c47
if connection fails, close gracefully and retry later
markmac99 e04f9f4
write pidfile
markmac99 17ef66d
remove unnecessary saving of temp pickles in ph2
markmac99 0a102b9
tidying up the date formats when reporting candidates, fails etc
markmac99 b73f07d
bugfix failed to define ref_dt
markmac99 7b45db1
add some comments
markmac99 91ab59e
create function to merge broken so we can call it elsewhere if needed
markmac99 615ea33
commit the write-ahead-log after every candidate save op
markmac99 43a4e8d
commit the obs database after saving candidates
markmac99 1a5d592
don't load stations or scan folders if in phase1 or phase2 only modes
markmac99 4ba68fc
support fractional bins
markmac99 3c0ae48
small correction in correlateDB
markmac99 f51e56c
remove unnecessary cursors
markmac99 d898e1f
support to purge local processed data
markmac99 704aa0a
make sure dbs are closed in the maintenance section
markmac99 51b637a
add verbosity
markmac99 3e7ac46
fix verbosity
markmac99 7c16e37
error handling in db merge process
markmac99 739ae25
remote remote WAL dbs after merger
markmac99 dcc904a
avoid trying to merge empty databases
markmac99 6415260
more fixes for database or table not existing
markmac99 d46b06f
documentation
markmac99 70b59ce
add more debug
markmac99 8071f49
delete rather than update when unpairing
markmac99 f663308
handle unpairing more efficiently with multi-insert
markmac99 6e20cf7
rename function more sensibly
markmac99 821bf68
switch logic round to mark paired after succeessful phase1. This redu…
markmac99 5fe13e0
remove unnecessay commit
markmac99 cfc0b81
pass new obs to solveTrajectory so they can be marked paired if needed
markmac99 7db6bdf
bug in phase1 processing
markmac99 ac19e59
working on ref_dt bug
markmac99 ced94c2
add debug messages to help testing
markmac99 9db92f7
tidying up
markmac99 e9d3c6e
avoid reprocessing already processed candidates
markmac99 c2572de
bugfixes and performance improvements
markmac99 e9794a8
remove incorrect location of Obs DB
markmac99 9612432
various improvements
markmac99 b9d9747
tidying up
markmac99 d7fabbd
fixes for issues #86, #87, #88, #94
markmac99 88bcd09
Add candidate database and use it
markmac99 48a35b0
purge older candidate data to keep database size reasonable
markmac99 cfd7645
save cands using jdt_ref to make checks easier
markmac99 c820387
small bug in cands db purge process
markmac99 bcaa042
move cand loading to within datahandle
markmac99 f234e8e
avoid slightly misleading message in log
markmac99 16a3db2
make sure to close and commit databases on exit
markmac99 2416d4b
bugfix
markmac99 1e44569
bugfixes and tidying up
markmac99 87c5109
add obs id to traj data
markmac99 21ab115
remove some debug
markmac99 8f6eaf6
add obs_ids to failed traj if convergence angle too small
markmac99 d9505a1
add ignored obs to database
markmac99 92e42bd
add ignored obs to traj object
markmac99 323d4c9
simplify updating the traj database
markmac99 6fe3f86
bugfix in trajdb
markmac99 a17a3a6
Merge branch 'wmpg:master' into distrib_processing
markmac99 205b9a3
add functionality to remove a trajectory by ID and to retrieve obsids…
markmac99 e74b8d7
remove some debugging
markmac99 830cce1
better remote data error management
markmac99 5bbf10e
improved duplicate management
markmac99 0fbfb3e
be sure to remove both traj with an overlap in obs so they get reanal…
markmac99 4a0c828
possible dupes: don't delete both trajs if not in auto mode
markmac99 c317cd6
less aggressive purging of processed phase1
markmac99 37cb56a
bugfixes in process to copy data from Json file
markmac99 e269d94
bugfix in allocation of data to children
markmac99 be840b8
log where phase1 files are saved
markmac99 8aa22e4
adding remote processing config file
markmac99 c12138c
tweaking debug
markmac99 b592ac8
support conversion of legacy trajectories as well as failed to sqlite
markmac99 9a3a4ed
more work on getting buckets right
markmac99 f421533
bugfix
markmac99 4fb4433
fix error in cand/phase1 saving logic
markmac99 83098f3
reworking on obs loading
markmac99 704bbb4
improve exception handling
markmac99 af31def
fixing timebucket calcs
markmac99 7521455
remove some debugging
markmac99 8b22845
improvements in data selection to avoid
markmac99 a89601a
performance bugfix in finding unprocessed data
markmac99 5785fed
bugfix when iterating through testing stations to ignore
markmac99 9433235
remove some debug and add some informational messages
markmac99 e6a8679
fix bug that was creating duplicates when reprocessing existing traj …
markmac99 8c8356b
updating some inline documentation
markmac99 68154de
Adding documentation on new capabilities
markmac99 0dfb9b4
Move documentation to right place
markmac99 047f784
More work on documentation
markmac99 bb872b7
More doco tweaks
markmac99 2807a0b
don't load json db if its not present (doh)
markmac99 5c09521
add merge process for canddb and fix small bug
markmac99 f437bca
bugfix in addTrajectory
markmac99 bae0d29
avoid closing closed databases
markmac99 8c5ce08
filter out legacy traj that can't be checked for dupes as easily
markmac99 5e44e3c
make dbdir and logdir if they dont exist
markmac99 b4daaa1
make sure traj objects include obs_ids when persisted
markmac99 300376b
bugfix - set candidate id and ref_ts in UTC
markmac99 7996132
sort trajbasics by jdt_ref
markmac99 cb989e3
bugfix for zero-length obsids
markmac99 58d7dea
correct return value from addTrajectory
markmac99 2d7a586
fix issues with updateTrajectoryDatabase
markmac99 ed9137d
missing verbose parameter
markmac99 781639e
bugfix to avoid crash if dupe traj arlready removed
markmac99 ca3fdf7
tiny tweak to avoid reprocessing the same events twice
markmac99 610b902
trying to fix bug #110
markmac99 2f55828
add some debug
markmac99 4ce305c
adding a little commentary
markmac99 4bbc6cb
Resolving issue where deduplication would crash if there were no
markmac99 32b9059
cosmetic tweak to remove irrelevant comment
markmac99 ba5e525
improvements in archiving/purging process
markmac99 89b9c7b
increase threshold for switching to only one timing estimation model.
markmac99 f4c6943
provide some additional logging when verbose is true
markmac99 04ee755
set default archivemonths to zero, meaning purge anything older than …
markmac99 9bf71d2
improve documentation
markmac99 f42cbca
missed an f-string
markmac99 68da3d4
update docs a little
markmac99 88258d6
minor tweak
markmac99 e77e398
Fix for issue 3 identified by Codex CLI
markmac99 0addda1
fix for issues 1,2,4 identified by Codex.
markmac99 4f1770c
fix for issue 6 identified by codex in an unused function. Also renam…
markmac99 c63d7b3
interestingly, this worked BEFORE my correction, because mcmode is a …
markmac99 9f67b33
improve handling of situations where the remote 'processed' file exists
markmac99 d2fc408
slight improvement in documentation
markmac99 02057b9
small doco changes
markmac99 11a431b
move processed phase1 from child nodes
markmac99 2f4fc0a
more clarification of the docs
markmac99 b6faca9
make sure we log assignment of candidates to nodes or master
markmac99 3a618a8
log if files are reallocated
markmac99 16facf5
daft error when checking and redistributing data
markmac99 bb78616
further small fix for capacity zero nodes
markmac99 6e1e7a4
small tweak to prevent overassignment to children
markmac99 0175ac3
make sure we properly log when pickles are assigned to a child
markmac99 0959005
typo
markmac99 affb633
oops log the correct target dir
markmac99 f677391
more doc changes
markmac99 e096cb0
Merge pull request #115 from wmpg/master
markmac99 ae3cd68
fix for bug where the original version of remotely calculated phase-2…
markmac99 ac23d37
minor tweak to use 'parent' instead of 'master'
markmac99 5209e1a
replace 'master' with 'parent'
markmac99 7bf1f28
replace 'master' with 'parent'
markmac99 4762bbc
Merge pull request #117 from wmpg/master
markmac99 8c160a0
Merge pull request #118 from wmpg/master
markmac99 f83956f
Adding documentation explaining how to set up remote processing from …
markmac99 dcd8691
Merge branch 'distrib_processing' of github.com:markmac99/WesternMete…
markmac99 2ab8928
Update Processing_High_Data_Volumes.md
markmac99 6ed0f52
fixes for issues 120 and 119 reported by Denis Vida
markmac99 7cf674c
Merge branch 'distrib_processing' of github.com:markmac99/WesternMete…
markmac99 6327dd7
bugfix for unusual case where trajectory has no valid obs_ids
markmac99 5243f88
add log handler to print messages to the console if no other streamha…
markmac99 a257a17
avoid double-logging
markmac99 eaa8b8e
correct a comment
markmac99 9f63e04
remove extra param from log.info
markmac99 08b1737
change info to warning
markmac99 30e46cf
fix bug in aggregateAndPlot - lam_err and bet_err not properly set if…
markmac99 190ad0d
Merge branch 'wmpg:master' into master
markmac99 70c167b
Merge branch 'wmpg:master' into distrib_processing
markmac99 a1ee994
make sure array is floating point
markmac99 814e86a
Merge branch 'wmpg:master' into master
markmac99 1ebb1cd
Merge branch 'wmpg:master' into distrib_processing
markmac99 b534c7d
Merge pull request #121 from wmpg/master
markmac99 6f73c56
unwind some changes made via the mattex_bug fix so a clean merge can …
markmac99 d77fc2c
Merge branch 'distrib_processing' into fixmergeconf
markmac99 05e4916
Merge pull request #123 from markmac99/fixmergeconf
markmac99 6218be6
Fix for "Bug: this can return deleted trajectories, and the not jdt_e…
markmac99 051519c
detach attached databases after archiving;
markmac99 526aed6
reinstate reboundx
markmac99 46e8639
documentation bugs noted by Denis
markmac99 9805c9d
small fixes recommended by Denis
markmac99 b445f09
add support for multiple ssh key types
markmac99 0acdfaf
archiveCandDatabase, avoid purging the newly opened/created arch data…
markmac99 67fe1b9
add python version constraint on rebound as version 4.3.0 isn't suppo…
markmac99 2e5119f
update constraint on reboundx as 4.3.0 is available for python 3.13
markmac99 e4c2ef8
Merge pull request #125 from wmpg/master
markmac99 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,146 @@ | ||
| # Multi-Server or Distributed Mode | ||
|
|
||
| This document explains how WMPL can be run in a distributed (multi server) configuration, to allow higher data volumes to be processed. There's more information about this mode [here](WMPL_Upgrades_2026April.md). | ||
|
|
||
| ## Notes | ||
| * The instructions below are for a Linux-type operating system. Adapting them for Windows is left as an exercise for the reader. | ||
| * For the purposes of this document, we will assume that WMPL is running under an account "ubuntu" on a server called "parent"and that we have a child node "node1". | ||
| * Node names to not need to match physical machine names (though you might find it useful for keeping track / auditing). | ||
| * Parent and children need not be on the same network, but it must be possible to connect between them using ssh and sftp. | ||
|
|
||
| ## Prerequisites | ||
| ### At least Two Computers | ||
| You will need at least two computers with WMPL installed. Installing WMPL is covered [here](https://github.com/wmpg/WesternMeteorPyLib/README.md). | ||
|
|
||
| Both Windows and Linux are supported, or a mixture of both. Child nodes can even be run under WSL2 on Windows. MacOS should also work though we have not tested it. | ||
|
|
||
| #### Parent Node | ||
| One computer will be the parent node and will | ||
| - load the raw camera data to create candidate groups of observations. | ||
| - distribute candidates to any child nodes and to itself. | ||
| - solve its own workload of candidates. | ||
| - receive any solutions uploaded by child nodes and integrate them into the solution dataset. | ||
|
|
||
| The parent node must have access to the raw camera data. The solved trajectories, logs and operational databases will be saved in folders on the parent node (these areas can be network shares). | ||
|
|
||
| #### Child nodes | ||
| Other computers will be child nodes and will | ||
| - connect to the parent and download any assigned data | ||
| - run the solver on the candidates | ||
| - upload any successful solutions to the parent node. | ||
|
|
||
| Child nodes do not need access to the raw data and do not require any long-term storage. All solved trajectories are uploaded back to the parent node and then removed from the child. Transient data on the child are housekept after a few days. | ||
|
|
||
| ## 1: Setup Connectivity | ||
| ### 1a: Create Child Node Public Keys | ||
| Login on each child node as the account that will run WMPL *on that node* and create an SSH key, then copy it to the parent: | ||
| ``` bash | ||
| ssh-keygen -t ed25519 -f ~/.ssh/wmpl -N "" | ||
| scp ~/.ssh/wmpl.pub ubuntu@parent:/tmp/node1.pub | ||
| ``` | ||
| You will of course have to provide the correct login details for the scp command. | ||
|
|
||
| ### 1b: Install an SSH Server on the Parent | ||
| The parent node must have an SSH/SFTP server to allow child nodes to collect data and upload results. | ||
|
|
||
| The SSH server is normally preinstalled on Linux though you may need to activate it. On Windows, you can install OpenSSH Server as explained [here](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui&pivots=windows-11). | ||
|
|
||
| ### 1c: Create a "wmpl" Unix Group on the Parent | ||
| This group will be used to manage permissions for the child accounts on the parent node. | ||
| ```bash | ||
| sudo groupadd wmpl | ||
| ``` | ||
|
|
||
| ### 1d: Create Child Node Accounts and File Structure on the Parent | ||
| On the parent, create accounts and the required file structure for each child node as shown below, changing the value of NODENAME as needed | ||
|
|
||
| ```bash | ||
| NODENAME=node1 | ||
| sudo useradd $NODENAME -G wmpl | ||
| sudo mkdir -p /home/$NODENAME/files/candidates/processed | ||
| sudo mkdir -p /home/$NODENAME/files/phase1/processed | ||
| sudo mkdir -p /home/$NODENAME/files/trajectories | ||
| sudo chown $NODENAME:$NODENAME /home/$NODENAME | ||
| sudo chown -R $NODENAME:wmpl /home/$NODENAME/files | ||
| sudo chmod -R 775 /home/$NODENAME/files | ||
| ``` | ||
| You should end up with a structure like the one below. | ||
|
|
||
|  | ||
|
|
||
| ### 1e: Set Child Node ACLs on the Parent | ||
| Group permissions may not be sufficient to ensure the parent account can access the child accounts. To make certain you can apply extended ACLs to the folders as follows: | ||
| ```bash | ||
| sudo setfacl -R -m user:ubuntu:rwx ~node1/files | ||
| ``` | ||
| replace 'ubuntu' with the account that will run WMPL on the parent. | ||
|
|
||
| ### 1f: Enable Sftp Logins for each Child Node on the Parent | ||
| On the parent, sudo to each child node account in turn and enable key-based logins following the example below. | ||
| Additionally while we're still configuring things we don't want WMPL to start trying to distribute data. So we create a 'stop' file in each child's 'files' folder. | ||
|
|
||
| ```bash | ||
| sudo su - node1 | ||
| mkdir .ssh | ||
| chown $(whoami):$(whoami) .ssh | ||
| chmod 0700 .ssh | ||
| cat /tmp/$(whoami).pub >> .ssh/authorized_keys | ||
| chmod 0600 .ssh/authorized_keys | ||
|
|
||
| echo "stop" > ~/files/stop | ||
| ``` | ||
|
|
||
| Test that this has worked by logging into each child node, then attempting to connect to the parent with ssh: | ||
| ``` bash | ||
| ssh -i ~/.ssh/wmpl node1@parent | ||
| ``` | ||
| Answer 'yes' if asked to accept the server key. If you get 'permission denied' check that you added the right key to the child's authorized_keys file on the parent node. | ||
|
|
||
| ## 2) Enable Remote Processing on the Parent | ||
| ### 2a) Configure Remote Processing on the Parent | ||
| Copy `wmpl_remote.cfg.sample` to `wmpl_remote.cfg` in the WMPL working directory on the parent. The working directory is the folder that contains the sqlite databases or legacy `processed_trajectories.json` file. | ||
|
|
||
| Edit this file to ensure that the mode is `parent` and then configure one row for each child node, following the patterns shown in the sample file. See [here](WMPL_Upgrades_2026April.md) for more details on how to configure each node and for recommended capacity values, but in general each child node should be allocated capacity of no more than 200 at a time, to avoid delays in processing. | ||
|
|
||
| ## 2b) Start WMPL on the Parent Node | ||
| You need to run three instances of the correlator on the parent node, one in mcmode 4 to create candidate groups, one in mcmode 1 to perform local solving of candidates, and one in mcmode 2 to perform full monte-carlo solutions. Example command lines are shown below. | ||
|
|
||
| ``` bash | ||
| # candidate-finder node. This will continuously scan the DATADIR for potential candidate groups | ||
| python -m wmpl.Trajectory.CorrelateRMS $DATADIR --mcmode 4 --logdir $LOGDIR --dbdir $DBDIR --outdir $OUTDIR -a 4 --autofreq 15 --addlogsuffix | ||
|
|
||
| # local solver. This will collect candidates and attempt to solve them | ||
| python -m wmpl.Trajectory.CorrelateRMS $DATADIR --mcmode 1 --logdir $LOGDIR --dbdir $DBDIR --outdir $OUTDIR -a --autofreq 30 --addlogsuffix | ||
|
|
||
| # local monte-carlo phase solver. This will collect phase1 solutions and add uncertainties | ||
| python -m wmpl.Trajectory.CorrelateRMS $DATADIR --mcmode 2 --logdir $LOGDIR --dbdir $DBDIR --outdir $OUTDIR -a --autofreq 60 --addlogsuffix | ||
| ``` | ||
|
|
||
| With these options the correlator will read data from DATADIR, write trajectories to OUTDIR, write logs to LOGDIR with a suffix indicating which mode it is running in, and save the operational databases in DBDIR. | ||
|
|
||
| These options also instruct the candidate-finder (mcmode 4) to run at least every 15 minutes collecting any new data from the last four days (as set by `-a 4`), the phase-1 solver to run every 30 minutes, collecting any available data irrespective of date, and the phase-2 solver to run every 60 minutes again collecting any available data. | ||
|
|
||
| The remote config file will be read from DBDIR. The file is re-loaded every time WMPL starts a new run (every 15 minutes in this example) and so you can dynamically add or remove nodes by updating the file. Initially all nodes will be disabled because earlier we created "stop" files at step (1f) above. | ||
|
|
||
| ## 3) Enable Remote Processing on Child Nodes | ||
| ### 2a) Configure Remote Processing on the Parent | ||
| Copy `wmpl_remote.cfg.sample` to `wmpl_remote.cfg` in the WMPL working directory on the child. The working directory is the folder that contains the sqlite databases or legacy `processed_trajectories.json` file. | ||
|
|
||
| Edit this file to set mode to `child` and to configure the SFTP login details appropriately. | ||
|
|
||
| ## 3b) Start WMPL on the Child Node | ||
| We run only one instance of WMPL on the child node. | ||
| ```bash | ||
| # local solver. This will collect candidates and attempt to solve them then upload the results back to the parent | ||
| DATADIR=. | ||
| python -m wmpl.Trajectory.CorrelateRMS $DATADIR --mcmode 1 --logdir $LOGDIR --dbdir $DBDIR --outdir $OUTDIR -a --autofreq 15 --addlogsuffix | ||
| ``` | ||
| When it first starts up, the correlator will connect to the parent, remove the stop file and wait for data to be assigned to it. | ||
| On its next pass round the parent will see that the stop file has been removed, and will assign some data to the child. | ||
| On the child's next pass, it will collect the data, process and upload the results. | ||
| The parent will then consolidate it into the main dataset. | ||
|
|
||
| ## 3c) Distributing Phase1 to Child Nodes | ||
| In the explanation above we've focused on distributing candidates so that we can quickly obtain initial (phase1) solutions. | ||
|
|
||
| It is also possible to distribute phase1 solutions to child nodes which can then perform monte-carlo solutions. We do this by adding a node to the parent's remote config file, indicating that a node is in "mode 2". Then we start up a node as above, but instead of mcmode 1, we run it in mcmode 2. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.