Commit Graph

902 Commits

Author SHA1 Message Date
Patrick Niklaus
2df02aa301 Make segment data update work without rtree 2017-03-17 11:19:58 +00:00
Patrick Niklaus
cec1f223e9 Split segment data update and edge update into sub-functions 2017-03-17 11:19:58 +00:00
Patrick Niklaus
17f8339aa6 Split out segment data update function 2017-03-17 11:19:58 +00:00
Daniel J. Hofmann
35c4c2a256 Fixes use-after-move, closes #3820 2017-03-16 14:42:48 +01:00
Bhargav Chippada
3c81baa26e Nearest Service #coordinates >=1 2017-03-15 22:42:08 +00:00
Patrick Niklaus
907f933a54 Add update functionality to osrm-customize
All speed file flags are compatible with osrm-contract.
2017-03-13 23:04:45 +00:00
Michael Krasnyk
c6e9cc8024 Add heuristic approach to assign edge-based partition IDs
that minimize number of faked source/destination nodes in
the edge case: a single backward edge will be placed
in other than node u partion
2017-03-13 22:00:38 +00:00
Patrick Niklaus
a636e8cc13 Include datasources in .geometries file and refactor .datasource_names 2017-03-10 20:40:59 +00:00
Patrick Niklaus
ffd6311e7d Address PR comment by @oxidase 2017-03-10 14:43:02 +00:00
Patrick Niklaus
fb552fd751 Apply clang-format 2017-03-10 14:43:02 +00:00
Patrick Niklaus
94e2a8598d Address PR comments 2017-03-10 14:43:02 +00:00
Patrick Niklaus
4986f5ea2d Consolidate read/write code in updater for compressed geometries 2017-03-10 14:43:02 +00:00
Patrick Niklaus
1b5ab37dfd Refactor compressed geometry in own abstraction with read/write 2017-03-10 14:43:02 +00:00
Patrick Niklaus
83820bf82c Split CSV parsing into nicer interface 2017-03-10 14:43:02 +00:00
Patrick Niklaus
20e028c47b Split updater code from contract into own module 2017-03-10 14:43:02 +00:00
Pepijn Schoen
c7fc36a61b Normalize file writes 2017-03-09 14:16:41 +00:00
Mateusz Łoskot
e705ff16e3 Ensure Extractor scheduler is requested with non-Zero number of threads.
By default, ExtractorConfig::requested_num_threads is Zero,
which is an invalid value for tbb task scheduler.
If user does not specify value greater than Zero, then
use tbb::task_scheduler_init::automatic.
2017-03-09 12:28:19 +01:00
Michael Krasnyk
0a13390ab0 Compute correct speed values in tile plugin 2017-03-09 11:18:53 +00:00
Mateusz Łoskot
e13ba8ba11 Add basic facades for Extractor and Contractor run methods.
Based on idea suggested in comments to #3776, simplifies
use of extractor and contractor as libraries.
2017-03-08 22:48:03 +00:00
Michael Krasnyk
dff8c48842 added reading cell storage in customizer 2017-03-08 16:08:00 +00:00
Michael Krasnyk
ec3cda32fa moved basic type definitions to osrm namespace 2017-03-08 16:08:00 +00:00
Michael Krasnyk
faaf82c837 Added CellStorage statistics 2017-03-08 16:08:00 +00:00
Michael Krasnyk
3f6ae245f6 Added osrm-customizer tool 2017-03-08 16:08:00 +00:00
Michael Krasnyk
264cec12e9 Fix reading MLD data into shared memory block 2017-03-08 00:56:50 +00:00
Michael Krasnyk
e423aa5511 added TODO for #3783 2017-03-08 00:56:50 +00:00
Michael Krasnyk
6f9aea4e56 fix clang format style 2017-03-08 00:56:50 +00:00
Michael Krasnyk
d575561d39 adjust free functions naming style 2017-03-08 00:56:50 +00:00
Michael Krasnyk
f42136637d Add edge-based graph loading in MLD facade 2017-03-08 00:56:50 +00:00
Michael Krasnyk
53b0417e36 fix boost::optional warning 2017-03-08 00:56:50 +00:00
Patrick Niklaus
821351f56e Simplify bisection->cellid code by counting bits not depth 2017-03-08 00:56:50 +00:00
Patrick Niklaus
c8bd01caae Use unsigned long long for 32bit 2017-03-08 00:56:50 +00:00
Patrick Niklaus
6cb401b1ff Run clang-format 2017-03-08 00:56:50 +00:00
Patrick Niklaus
8ad9a0aa9a parameterize cell size 2017-03-08 00:56:50 +00:00
Patrick Niklaus
8f9e980945 Add class to translate from bisection ids to cell ids 2017-03-08 00:56:50 +00:00
Patrick Niklaus
00d01946cd Moved MultiLevelPartition and CellStorage to partition namespace 2017-03-08 00:56:50 +00:00
Patrick Niklaus
694bf9d8b1 Integrate CellStorage into datafacade 2017-03-08 00:56:50 +00:00
Patrick Niklaus
ef71cc0d12 Clang format 2017-03-08 00:56:50 +00:00
Patrick Niklaus
108fce896b Pull everthing in the facades 2017-03-08 00:56:50 +00:00
Michael Krasnyk
ff0a98196f Initial interation on writing out MLD partition/cell data 2017-03-08 00:56:50 +00:00
Michael Krasnyk
172b1ff9d1 Enable building osrm-extract-conditionals on travis 2017-03-06 16:16:17 +00:00
Patrick Niklaus
c2a5cc034a Fix formating 2017-03-03 16:02:12 +00:00
Patrick Niklaus
e737700c7b Fix tile encoding 2017-03-03 16:02:12 +00:00
Patrick Niklaus
a32f8a6a59 Fix two typos in tile code 2017-03-03 16:02:12 +00:00
Patrick Niklaus
ed00965d18 Add algorithm selection 2017-03-03 16:02:12 +00:00
Patrick Niklaus
3f485ac09b Addressed PR comments by @daniel-j-h and @oxidase 2017-03-03 16:02:12 +00:00
Patrick Niklaus
a901bda41e Fix algorithm compability check logic 2017-03-03 16:02:12 +00:00
Patrick Niklaus
0ac1f99f9c Fix bug in refactor 2017-03-03 16:02:12 +00:00
Patrick Niklaus
30ff0fa977 Refactor routeStep 2017-03-03 16:02:12 +00:00
Patrick Niklaus
7da86b5984 Implement CoreCH algorithm 2017-03-03 16:02:12 +00:00
Patrick Niklaus
922e155763 Add type traits to disable plugins for specific algorithms 2017-03-03 16:02:12 +00:00
Patrick Niklaus
436b34ffea Refactor routing_algorithms to only contain free functions 2017-03-03 16:02:12 +00:00
Patrick Niklaus
2fa8d0f534 Port OSRM, Engine and Datafacades to be algorithm aware 2017-03-03 16:02:12 +00:00
Patrick Niklaus
886421b43a Fix help texts and .nbg_to_ebg -> .cnbg_to_ebg 2017-03-01 16:09:29 +00:00
Patrick Niklaus
e20cbf673f Make InertialFlow a function 2017-03-01 16:09:29 +00:00
Michael Krasnyk
748ade5fea fixed warnings 2017-03-01 16:09:29 +00:00
Michael Krasnyk
f5e9c7df07 adjust extractor scc to new StaticGraph 2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
ed7438b9ba don't check for files not actually read 2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
e8cca36369 fix tbb leaks 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
c712fafae3 Sigh. Just randomly pick a side for border nodes for now.. 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
e589ab814d Store flag for artificial bounary edges and walk border nodes in ebg 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
5015e12d59 First try at artificial nodes 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
3e409bea26 Loads the edge based graph edges and constructs a dynamic graph from it 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
e0665856b0 Split Partitioner I/O off into separate headers 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
f71d742b5e Implements Mapping for NodeBasedGraph -> EdgeBasedgraph Translation 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
299d071e9d Fixes asan's detected tbb leak in osrm-partition
Here's all I could get out of a instrumented `osrm-partition`; debug build,
with all the bells and whistles I could think of to make it more verbose:

```
==17928==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 1560 byte(s) in 3 object(s) allocated from:
    #0 0x7f4244185b30 in operator new[](unsigned long) ../../../../libsanitizer/asan/asan_new_delete.cc:62
    #1 0x7f4242a788b3  (/usr/lib/libtbb.so.2+0x208b3)

SUMMARY: AddressSanitizer: 1560 byte(s) leaked in 3 allocation(s).<Paste>
``

Symbolizing the address results in

```
echo "/usr/lib/libtbb.so 0x7f4242a788b3" | llvm-symbolizer
_fini
```

Looks like a crt finalizer => static global dtor "leaking" from tbb.

Which turned out to be a missing `tbb::task_scheduler_init` on our end:

> Using task_scheduler_init is optional in Intel® Threading Building
> Blocks (Intel® TBB) 2.2. By default, Intel TBB 2.2 automatically creates
> a task scheduler the first time that a thread uses task scheduling
> services and destroys it when the last such thread exits.

https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm?index.htm#reference/task_scheduler/task_scheduler_init_cls.html

Without an explicit instanz the first call to a tbb algorithm seem to initialize
a global scheduler singleton which then "leaks" until the program exits.

Phew.
2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
be41e8b321 generate stats in annotation 2017-03-01 16:09:29 +00:00
Daniel Patterson
b62b09e5f6 Dump memory usage stats after partitioning. 2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
b789da45bd add unit tests for the different components of the parttion tool 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
e316dad1cb No longer requires edges to have a .data member in static graph
some fixes to make branch compilable
Removes unneeded edge data from components search
2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
c3cc79f798 always emit a small component view
Unit Tests for Reodering by Predicate
2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
b9ed20bb9b Implements Compressed Node Based Graph (De-)Serialization Skeleton
Implements parallel recursion for the partitioner
Fixes osrm-extract's -dump-partition-graph: accept no further tokens

References:
- http://www.boost.org/doc/libs/1_55_0/doc/html/boost/program_options/bool_switch.html

Pulls parameters through to make them configurable from the outside

Defaults are equivalent to:

    ./osrm-partition \
      berlin-latest.osrm \
      --max-cell-size 4096 \
      --balance 1.2 \
      --boundary 0.25 \
      --optimizing-cuts 10

Fixes parallel_do call for Intel TBB 4.2 (Trusty): no range-based overload
2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
786be6f570 Optimise Flow Algorithm/Datastructures in use 2017-03-01 16:09:29 +00:00
Daniel J. Hofmann
dd60ae31ae Implement Parallel Spatial-Ordering/Cut Selection
Extends explanation for recursive bisection ids
Cleans up Bisection State
Removes license boilerplate from partitioner config
Sorts Spatially and picks Sources and Sinks
Uses sets for sources and sinks for now; see how large they will get
Runs n cuts in parallel changing the slope and uses the best
Clarifies balance <-> ratio naming
2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
db7adfa77b Implement Dinic Algorithm for MaximumFlow/MinimumCut 2017-03-01 16:09:29 +00:00
Daniel J. H
dd3f351874 Partitioner Improvements and Utils on top of #3603 (#3611)
* Implements Random Access Iterator Facade for EdgeIDIterator

* Makes StaticGraph Node and Edge requirements explicit

* Cleans up Bisection Graph, Node and Edge

* Cleans up GraphView
2017-03-01 16:09:29 +00:00
Moritz Kobitzsch
d56db500d3 Initial Skeleton for Recursive Bisection via Inertial Flow 2017-03-01 16:09:29 +00:00
Lev Dragunov
07221f5a48 Do not take the current route into account in alternatives_count parameter. 2017-03-01 01:29:00 +00:00
Lev Dragunov
f7b8e06c3a Matching alternatives count output. #3508 2017-03-01 01:29:00 +00:00
Moritz Kobitzsch
6c3390f14d refactor of post-processing
- moves collapse into a dedicated set of functions / files
 - make collapse scenarios distinct (slight performance cost)
 - reduce verbosity for short name segments (now actually working, was supposed to do so before)
2017-02-25 12:17:22 +00:00
Michael Krasnyk
4161181a6c revert watchdog singleton 2017-02-24 16:01:56 +00:00
Michael Krasnyk
82acd59a8e shared monitor implementation with a conditional variable
or a ring buffer with semaphores
2017-02-24 16:01:56 +00:00
Moritz Kobitzsch
1ad1ff5fc1 remove unsigned >= 0 checks, unused constnat 2017-02-21 13:55:59 +01:00
karenzshea
c2727f2029 expose data about turning onto restricted roads to turn function 2017-02-20 12:40:51 +00:00
Moritz Kobitzsch
03bb6dc161 reduce verbosity of use-lane in combination with lane-anticipation 2017-02-15 21:57:48 +00:00
karenzshea
1bace1288d use qi - parser to work with 0 speed file lines 2017-02-13 16:09:25 +00:00
Moritz Kobitzsch
dc1d491c15 comments 2017-02-13 10:55:40 +00:00
Moritz Kobitzsch
e4d500f451 fix handling none-tags in presence of multiple turns within 2017-02-13 10:55:40 +00:00
Michael Krasnyk
ce685da92c use weight_multiplier to convert fallback durations to weights 2017-02-10 13:24:01 +00:00
Kajari Ghosh
2218658969 Trip with Fixed Start and End points (TFSE) (#3408)
* fixed start and end trip feature to trip service
2017-02-10 05:13:20 -05:00
Michael Krasnyk
28a8154cee check weights consistency after updates 2017-02-10 09:22:24 +00:00
Patrick Niklaus
0c04c6cafb Address PR comments 2017-02-07 18:12:49 +00:00
Patrick Niklaus
bf690df97a Merge branch 'minor_fixes' of https://github.com/seemoritz/osrm-backend into seemoritz-minor_fixes 2017-02-07 12:48:29 +00:00
Michael Krasnyk
6e1c4bfecd Added indexed array data type with variable and fixed group blocks 2017-02-07 07:41:12 +00:00
Michael Krasnyk
c48fc58eb2 reduce size of InternalExtractorEdge by using single-precision values 2017-02-03 21:52:39 +00:00
Michael Krasnyk
5f1c7efd41 assertion for correct weight data 2017-02-03 18:59:00 +00:00
Patrick Niklaus
eaed5c7a8e Split if in ProcessWay to comform to old behavior 2017-02-03 12:41:26 +00:00
Michael Krasnyk
b3ef27d104 Make watchdog a singleton instance
References:
https://github.com/Project-OSRM/osrm-backend/issues/3619
https://github.com/Project-OSRM/osrm-backend/pull/3627#issuecomment-276288138
2017-01-31 13:25:59 +01:00
Michael Krasnyk
c22ce3ae1f Use shared memory region mapping at fixed address for OSX 2017-01-31 13:25:59 +01:00
Michael Krasnyk
ad594cb2e4 Update review findings 2017-01-27 11:19:37 +01:00
Michael Krasnyk
6b143c5e1d Use duration in SegmentBlock for duration updates 2017-01-27 11:19:37 +01:00