simics+gems simulates the full system, not just whatever applications happen to be running. Once an application is launched, the OS will normally choose to execute it on one of the cpus. If you had a 4 cpu system, and launched a single threaded application, you still have 4 cpus in the system gathering data (unless there's power management which gems+simics doesn't do). CPUs that aren't executing anything will execute the idle thread for the OS. GEMS is just reporting the number of instructions, cache misses etc that each CPU generates. In it's default state it doesn't keep track of what applications are running to generate these values (although it does some stuff with OS/non-OS differentiating).
Phil On Jan 5, 2011, at 9:25 AM, 李 建樟 wrote: Hi all, I use GEMS + simics to run hello world test program. like the following int main() { printf("hello world\n"); return 0; } the ruby configure is g_NUM_PROCESSORS: 2 g_NUM_L2_BANKS: 1 g_NUM_MEMORIES: 1 g_PROCS_PER_CHIP: 2 g_MEMORY_SIZE_BYTES: 4294967296 g_DATA_BLOCK_BYTES: 64 when simulation is finished, I dumped the result. There still had two processor running. I passed NodeID with the argument m_chip_ptr->getID()*RubyConfig::numberOfProcsPerChip()+m_version The NodeID is 0 or 1. But I run sequencial code, why the NodeID had two value? I use the following command instruction-fetch-mode instruction-fetch-trace istc-disable dstc-disable cpu-switch-time 1 Another question: Is simics and GEMS the number of processor configuration must the same ? Because if the number is different, the simics would output error and end up simulation. Above two questions, is there something wrong? Thanks for your help! Allen _______________________________________________ Gems-users mailing list Gems-users@xxxxxxxxxxxhttps://lists.cs.wisc.edu/mailman/listinfo/gems-usersUse Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
|
|