I'm currently doing a project which require me to run multiple instance of the same Jar on multiple core. I'm running it on a 6-core with hyper-threading, which makes it effectively 12 cores.
Right now, I tried to run 12 instances of the jar on the the processor, effective it is 1 instance on 1 core by setting the affinity. since I'm triggering the processes as a independent JVM, i believe each process is allocated it's own memory. however, the time taken for each instances under the this condition to complete takes roughly around 20 mins, while the time taken for 1 instance to complete when only 1 instances is running is about 65 seconds.
Some how I think that the execution time doesn't make sense.
does any one had any idea why this is happening?
How does running the java program differ from running any other program in your testing?
well, the purpose of running multiple instances of that java program is to be able to generate multiple instances of Plans.
Originally Posted by Norm
Each instances of plans created by the java program was suppose to be randomized, as the current version of the program only create 1 plan. but that part isn't worrying. It is done this way so that all the Cores can actually be utelized to 100% efficient.
But right now, I'm triggering the process by using cmd to call the jar file created. I'm using a HP 12 core system with 12gb memory, when I only run a instance of that program on 1 core, it took about 65 seconds. But when I run 12 instance of the program on 12 core, setting affinity so that each process could have it's own core, the average time required to complete increased to about 20 mins. Even though i had trigger the 12 program under diffferent JVM. the computation time is still too long.
What happens when you try to run 12 instances of any other program that consumes some CPU time?
I don't know what java has to do with your testing.