NUM_OF_WORKING_THREADS vs usage of CPU cores

Skip to first unread message

RL Wang

Jul 28, 2016, 3:44:35 PM7/28/16
to elk-reasoner-discussion

I tested setting of different number of workers in ELK vs the usage of available CPU cores.  It seems like for some tasks, ELK was able to use all my CPU cores based on my setting.  For some other tasks, though, it doesn't make any difference.  In those cases, for my 12-core Windows machine, setting the number of workers to 12 still only saw of a fraction of CPU cores got used.   Here is the CPU usage (attached screen shot) when ELK was doing these tasks below using 12 workers.  So my question is, the parallel processing by ELK is implemented only for selected tasks?

Thanks for clarification,


Incremental Deletion started
Incremental Deletion using 12 workers
Incremental Deletion took 0 ms
Incremental Overdeletion Pruning started
Incremental Overdeletion Pruning using 12 workers
Incremental Overdeletion Pruning took 0 ms
Incremental Additions Initialization started
Incremental Additions Initialization using 12 workers
Incremental Additions Initialization took 11 ms
Incremental Addition started
Incremental Addition using 12 workers
Incremental Addition took 0 ms
Incremental Taxonomy Cleaning started
Incremental Taxonomy Cleaning using 12 workers
Incremental Taxonomy Cleaning took 0 ms
Incremental Consistency Checking started
Incremental Consistency Checking using 12 workers
Incremental Consistency Checking took 29 ms
Incremental Taxonomy Construction started
Incremental Taxonomy Construction using 12 workers
Incremental Taxonomy Construction took 1 ms
Loading of Axioms started
Loading of Axioms using 12 workers
Loading of Axioms took 0 ms

Peter Skočovský

Aug 2, 2016, 5:28:28 AM8/2/16
Dear Ronglin,

The part of the logs that you posted (the tasks) report that each task was finished in few milliseconds. I think that it wouldn't be possible to see such a short task in Windows Task Manager. All I see in the screenshot that you have sent is that one CPU is constantly working on something. However, this seems to be something else that ELK's reasoning, because it lasts longer than milliseconds. Try to run ELK on OpenGALEN Version 8 [1]. That takes enough time so that you can see the impact also in Windows Task Manager.


Best Wishes!

You received this message because you are subscribed to the Google Groups "elk-reasoner-discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
For more options, visit

Yevgeny Kazakov

Aug 4, 2016, 4:36:20 AM8/4/16
Dear Ronglin,

As Peter mentioned, if your queries are very easy (run a few ms) it is unlikely that you see much benefit from multicore CPUs.
Many ELK incremental (initialisation) stages are serialised. For example, ELK cannot load a query in parallel.

Can you, perhaps, explain what you are trying to achieve?
If you need to query many class expressions (in parallel) you can do it in more efficient way as instructed here:

Best regards,

Reply all
Reply to author
0 new messages