Skip to content

Opportunities for multithreading #28

Description

@yakra
TaskPriorityComments
Sorting waypoints in QuadtreeDone
250a2fa
Combine sorting colocated point lists. See #89.
Writing near-miss point merged wpt filesDone
Processing traveler list filesDone
Concurrency detection(bottom)
1.1s
Potential for data races makes this impracticable.
Processing waypoint labels and checking for unconnected chopped routesDone
b07f73b
TravelMapping#397
Concurrency augmentsDone
Computing statsDoneHad less luck first time round: Spent all its time hung up inside one mutex with one map always creating and throwing std::out_of_range. Was written a little too much like the original Python. :)
per-traveler stats log entriesDone
Writing traveler list logsDoneMaybe fold the writing into the calculation... Only 0.2 s now.
Done.
Writing stats csv filesDone
2dd3b28
~ 1/3 all active, 1/3 active+preview, 1/3 individual systems
unique names and verticesDone
4d988b3
TravelMapping#285
Creating edges(medium)
3.3s
Do #175 first!
Need mutex, to:
• check for duplicate edges (reorder code in 1st ctor).
• add to adjacency lists
Just one should be good, but see below...
Compressing collapsed edges(low)
~1.3s
Need mutex for adding to and detaching from adjacency lists.
• 1 for every vertex = 22,686,480 B
• 1 for every quadtree node (faster) = 4,916,336 B
• 1 for every quadtree node (slower) = 1,526,120 B
• 1 for everything = 40 B. I can get away with this, right?
writing master graphsDone
96be2a3
Combined into one function & written alongside subgraphs.
subgraphsDone
4879245
Performing data checksDoneFolded into Route::read_wpt to take advantage of idle CPU time while waiting for I/O.
Marking datacheck false positives(high)
9.7s
Iterator validity, etc. Don't think parallel, just think concurrent -- see TravelMapping#379
database fileDone
bc96425
Start one thread writing everything except for the graph info; generate graphs; join() the file-writing thread; append graph data to the file.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions