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
Michael Krasnyk
25baf51a2c
Add duration to edges and use it in table plugin
2017-01-27 11:19:37 +01:00
Michael Krasnyk
c059d15cb9
Added weight multipliers for speed and turn updates
2017-01-27 11:19:37 +01:00
Patrick Niklaus
279f8aabfb
Allow specifing a weight for routing that is independent of duration
2017-01-27 11:19:37 +01:00
Moritz Kobitzsch
c7640903c3
don't emit invalid turns when having u-turns on ferries
2017-01-26 13:08:00 +01:00
Moritz Kobitzsch
b5e289adc3
3605 - fix error in treating end-of-road as choiceless ( #3607 )
2017-01-24 11:23:54 -08:00
Michael Krasnyk
e0a1a43449
Added maxspeed:conditional checker
2017-01-24 10:31:59 +01:00
Michael Krasnyk
337ecefa45
Added osrm-extract-conditionals tool
2017-01-24 10:31:59 +01:00
Daniel J. Hofmann
c277b95f03
Implements Zero-Copy String Views onto Contiguous Memory, resolves #3265 .
...
- http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html
- http://en.cppreference.com/w/cpp/string/basic_string_view
2017-01-23 15:22:39 +01:00
Michael Krasnyk
b1f1c26703
Remove decltype(Value::source), fixes xcode 7.3 compilation
2017-01-23 15:17:08 +01:00
Moritz Kobitzsch
d129b0ef24
remove templates from routing algorithms
2017-01-21 23:59:15 +01:00
Daniel J. Hofmann
f2c3b9859e
Rewrites the osrm-components tool to dump GeoJSON, resolves #2176 #1738 #1602
...
http://bl.ocks.org/d/9d6265b064c0f29a71503e0f6527769d
2017-01-20 17:50:06 +01:00
Michael Krasnyk
a48cf58468
Move IPC tools functionality into osrm-datastore
2017-01-20 12:40:37 +01:00
Huyen Chau Nguyen
a40abacfca
Refactors the Turn Handler's Fork Abstraction, resolves #3457 .
2017-01-19 19:49:40 +01:00
Moritz Kobitzsch
b8beac2d00
unite process/shared_memory datafacades into a single type using an allocator scheme
2017-01-19 17:18:35 +01:00
Moritz Kobitzsch
6b06c5bd32
fix emitting invalid turn types, now surfacing due to changes in obvious detection
2017-01-18 15:56:48 +01:00
Moritz Kobitzsch
226ee62981
refactor graph contractor for readability
...
move to a dedicated dijkstra, separate code and header
reduce heap size, we don't use more than 2000 nodes, so why allocate 170k?
2017-01-18 15:03:15 +01:00