sst-elements icon indicating copy to clipboard operation
sst-elements copied to clipboard

sstprospero-0-0.trace file unavailable for prospero

Open debtanu09 opened this issue 1 year ago • 7 comments

sstprospero-0-0.trace file unavailable for prospero array tests. Can someone help me get it, if not then just a sample file so that I can create a trace file in similar format

debtanu09 avatar Jul 14 '23 13:07 debtanu09

The prospero test trace files are here: https://github.com/sstsimulator/sst-downloads/releases under "SST Test Support Files"

gvoskuilen avatar Jul 14 '23 15:07 gvoskuilen

I was able to use those trace file in the prospero run test, I have one more question -- can you explain me the format of the given trace file ? example -- "1 W 140734192927288 8"

1 - ? W - write 140734192927288 -? 8 - ?

dmukherj09 avatar Jul 17 '23 01:07 dmukherj09

Also I have another trace file which has the following format -- example -- "0 R 7d7134200 123"

where 0 - CPU number (there are 4)(it's a multiprocessor system) R - read 7d7134200 - address 123 - data

I can convert my trace file to the required trace file using a python script after I get to know the format consumed by prospero but how to use the CPU number thing? is there a way to also give the CPU number as the input to prospero modelling a mutiprocessor scenario?

dmukherj09 avatar Jul 17 '23 01:07 dmukherj09

The format is "cycles type address length" where: cycles: minimum cycle count at which the request can be issued type: R (read) or W (write). Not case-sensitive. address: memory address length: number of bytes to read or write

Each core in prospero is its own component. So to do multiple cores you would instantiate multiple prospero CPUs, and give each one its own trace file.

gvoskuilen avatar Jul 20 '23 17:07 gvoskuilen

I understand. Just one more follow-up questions, can you tell me, is there a way to get the average bandwidth for each cache and memory component. I couldn't find that in the dumped stats.csv. Also can you point me where i can get to know what each stats mean in the stats.csv, some of them I cannot understand what it means.

For example --

l1cache, GetXMiss_Arrival, , Accumulator, 244758996328, 0, 15192479, 15192479, 15192479, 1, 1 l1cache, GetSXMiss_Arrival, , Accumulator, 244758996328, 0, 0, 0, 0, 0, 0 l1cache, GetXMiss_Blocked, , Accumulator, 244758996328, 0, 2838, 2838, 2838, 1, 1 l1cache, GetSXMiss_Blocked, , Accumulator, 244758996328, 0, 0, 0, 0, 0, 0

dmukherj09 avatar Jul 21 '23 06:07 dmukherj09

For the stats, use '$ sst-info memHierarchy' to locate the component/subcomponent and description of each stat. 'GetX' is an exclusive request for a block, 'GetS' is a non-exclusive request.

For bandwidth, there's no direct stat that counts it. You'd need to add up the number of accesses and multiply by the size of the access to get the total volume. I'm going to mark this issue for a feature add since size of access isn't always a constant.

gvoskuilen avatar Aug 11 '23 17:08 gvoskuilen

Yes adding the bandwidth metric would be great, thank you, for now I'm doing similar setup to what you mentioned to calculate the bandwidth.

dmukherj09 avatar Aug 14 '23 01:08 dmukherj09