Parallel Enclosing Circle Algorithm
|Parallel Enclosing Circle Algorithm|
|Project Title||Parallel Enclosing Circle Algorithm|
|Start Date||July 31, 2017|
|Deadline||October 4, 2017|
|Has project status||Complete|
|Is dependent on||Enclosing Circle Algorithm|
|Copyright © 2016 edegan.com. All Rights Reserved.|
A thin-wrapper around the enclosing circle algorithm which allows for instance-level parallelization.
This project consists of the python files in
Parallelization is implemented via Python2's
subprocess.open() which is non-blocking and available in the standard library.
Note that this is not the classical enclosing circle algorithm.
Rather, we seek to minimize the sum of enclosing circles containing at least
Thus, multiple circles are allowed and inclusion in multiple circles is possible.
ITERATIONS: the number of iterations to attempt for each
kto find minimum for that
n): the minimum number of data points that must be included in a circle
NUMBER_INSTANCES: number of parallel instances to run; assume no data-races between instances
SWEEP_CYCLE_SECONDS: amount of time before removing completed jobs from the current job and adding new jobs if any files are left to process
TIMEOUT_MINUTES: maximum running time of a parallel instance of the algorithm
SPLIT_THRESHOLD: if a dataset has more than this threshold of data points, it will be split via k-means
$ python vc_circles.py --infile E:/McNair/Projects/OliverLovesCircles/CoLevelForCirclesNotRunGTE200.txt
CoLevelForCirclesNotRunGTE200.txt is a tab-separated values file with the columns
placestate, place, statecode, year, latitude, longitude, coname, datefirstinv, placens, geoid, city
This command will populate (and overwrite) any files in
data/. The format of the filenames in this directory are
num is a 0-indexed integer of a split city/state/year
infile that has greater than