Testing a Java program on a virtual 1024 core machine
I have written a Java application (parallel), and have tested it 开发者_如何学Con a 16 core machine, but I need to test it on an up to 1024 core machine. Though it's not feasible for me to get access to any such physical machine.
Are there ways of running a Java program on a simulated 1024 core machine?
EDIT: Purpose of this testing I am trying to replace locks using lock-free protocol in my application , and running it on 16 cores is giving me a good performance, but i want to test it on larger core system also, to find out bottle-neck. Any idea whether we can do so using virtualmachines ?
I presume you are asking how to run a java app on a simulator that can simulate more than one core.
I don't know how effective it would be because at the metal level you would still only have 16 cores so my understanding would be that only 16 things can happen at the same time. Due to the speed of the machinery it might appear that more is going on, but it's not.
So I'm thinking you need to outline what sort of test you are thinking of because some tests might be ok on a simulator (probably running multiple threads to simulate the extra cores), but other tests would probably not.
I don't know what type of app you are writing that would need to run on such machinery (code breaking? massive simulations ?) but I'd expect what you would be looking for was to establish the overhead of adding more cores. You could probably do this by measuring with the code on one core, 2 cores, 4 cores, 6 cores, etc and extrapolating up. But it would still be a guess because there may be other hardware/software factors that only kick in after a certain number of cores are running. I/O for example.
精彩评论