-
Notifications
You must be signed in to change notification settings - Fork 297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split the 16dae.c source file into multiple files #4851
Comments
Original ticket https://trac.openmodelica.org/OpenModelica/ticket/4851 |
The file |
@ceraolo, this should speed up the compilation phase significantly when running the larger PowerGrids tests, e.g. the IEEE14Bus models. Even more if you try larger models still. |
I suppose it depends on how many cores you have on you CPU isn'it? Is the number of logical processes also meaningful? Have you made a comparison with the IEEE14bus included in powerGrids? |
OMEdit bydefault compiles the model code in parallel with option Number of Processors which is fetch using numProcessors API. This is using logical processors. So instead of compiling one big file, we split it in multiple files so that it can be compiled in parallel. |
@ceraolo you sure have a multi-core CPU, unless your PC is more than 15 years old 😃. If it's a laptop, I guess it could have 4 or 8. |
@casella, I was just curious about your mentioning of multi-CPU machines. Now I realise you meant multi-core, which is more reasonable to me. Now I'm able to make tests on my machines. |
well... when IEEE14Bus models are working again! |
Yeah, sorry, I meant multi-core CPUs 😅
This is how it works, you have N physical cores (real processors in silicon). They all fight for access to memory, and they are often waiting for chunks of memory content to be transferred from the RAM to the processor cache. So, they had this bright idea, we pretend every physical core is two logical cores, and while one is waiting, the other one runs. In theory this can improve the performance for memory-intensive applications. In practice, even though you see all those virtual cores working 100%, they may actually be waiting for data to be shuttled from RAM to cache. In many cases it's really the number of physical cores that matters for actual speed-up.
Good. |
This is weird, the latest test report gives |
IEEE14busStaticNetwork works fine also on my laptop. |
I did not check this, but the "true" transient examples, as I said. But maybe my failures are due to an issue of the develop and/or OM nightly I used. Did you make any performance test to see whether fixing this ticket has produced improvements? |
PowerGrids.Examples.IEEE14bus.IEEE14busGen2Disconnection also works fine. I haven't checked the performance change, I'd need to uninstall and reinstall, too busy now... |
oops, I am using a nightly build which is older than Adrian's commit 2ab9ff8. I need to update it and re-check |
See #12055 |
- forward the equation functions in the main file 16dae.c file from the part files.
No description provided.
The text was updated successfully, but these errors were encountered: