Bug 349655 - [Workspace Management] Use multiple threads for loading the files
Summary: [Workspace Management] Use multiple threads for loading the files
Status: CLOSED WONTFIX
Alias: None
Product: Sphinx
Classification: Automotive
Component: Core (show other bugs)
Version: 0.7.0   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-17 04:27 EDT by Robert Kiss CLA
Modified: 2024-05-06 23:03 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Kiss CLA 2011-06-17 04:27:48 EDT
Build Identifier: 

Large models made from hundreds of files each of them a couple of MB large take quite some time to load. However, loading a particular file does not depend on the loading of another file so we should try to harness the multiple cores that most of us have.

This is definitely not a trivial task and could have a lot of implication but the multi cores are here to stay and each piece of software should try to benefit from it.

Reproducible: Always
Comment 1 Stephan Eberle CLA 2011-07-08 19:35:52 EDT
Clearly a good idea. I'm however wondering based on which criteria we should decide how many jobs we should create when being face to a given number of files. Once the know that we also need to consider the file sizes so as to make sure that a first job loads 100 little files and a second hundred big files.
Comment 2 Robert Kiss CLA 2011-07-09 04:16:38 EDT
It's not necessary to split the initial pool of files from beginning. We can, for example, create a pool of daemon threads that listen for some notification. When such a notification is received, it will take one request from a queue, execute it, store the response into another queue.... you got the idea.
The initial number of threads can be derived from the number of available CPU's
Comment 3 Chetan Kumar CLA 2011-07-10 20:50:34 EDT
Does parallel file load also include proxy resolution that happens after load ?
Comment 4 Robert Kiss CLA 2011-07-11 03:10:32 EDT
I don't think it can. A resolved proxy could refer to an object that is not yet loaded.
However, it can initialize the index for the loaded resource. That operation is also time consuming and can be executed in parallel.
See ModelLoadManager.forceProxyResolution; the call to lookupResolver.init(resources)
Comment 5 Robert Kiss CLA 2011-07-12 07:38:44 EDT
I might have time to work on this in the July/August.
Comment 6 Balazs Grill CLA 2024-05-06 23:03:19 EDT
Closed stale issue before migration