Coder Social home page Coder Social logo

Comments (9)

rdementi avatar rdementi commented on August 27, 2024 1

Thanks for asking. I will check with the developer.

from pcm.

matte21 avatar matte21 commented on August 27, 2024

Any update on this?

from pcm.

rdementi avatar rdementi commented on August 27, 2024

thank you for your patience. I apologize for the delay. We will provide you an update soon.

from pcm.

sravisun avatar sravisun commented on August 27, 2024

Hi @matte21. I am looking into the issue. Can you please provide some information on what server you are running on and what you are trying to monitor?
Thank you

from pcm.

matte21 avatar matte21 commented on August 27, 2024

Hi @sravisun .

I'm using a two-socket system where each socket is a Xeon Silver 4114 CPU.

The OS is Ubuntu 22.04.

pcm is at release 202201.

I have a bunch of apps, and for each one I'm trying to measure their sensitivity to memory latency. Practically, this means that for each app I generate some load multiple times, where each time I set a different value for the uncore frequency (to simulate different latencies when accessing RAM), and see how much the app latency and throughput degrade as the memory latency increases.

The problem I have is that I want to make sure that the cache hit rate (for every cache level) is low. Otherwise, an app might spuriously appear as insensitive to memory latency, while in fact it's just hitting the caches very frequently.

So what I'd like to monitor is the cache hit rate for every cache level. The vanilla pcm command only has that for L3 and L2 cache. So I wanted to use pcm-latency (according to the README it can do what I want, although I haven't verified that). The problem is that in my server I have hyper-threading off (and I need it to be off). So I hit this case: https://github.com/intel/pcm/blob/master/src/pcm-latency.cpp#L385-L389 .

from pcm.

sravisun avatar sravisun commented on August 27, 2024

Hi @matte21

Yes at the time it was coded we had put in a block where there was no support for offline cores.
How are you disabling hyperthreads? Directly turning it off in the BIOS?
Will need to verify if we can remove the check for offline cores incase we cannot work around this. I will get back to you on that very shortly.

from pcm.

matte21 avatar matte21 commented on August 27, 2024

Hi @sravisun.

To disable hyperthreading, I update the grubconfig by appending nosmt to the value of the var GRUB_CMDLINE_LINUX_DEFAULT, run update-grub, and then reboot the machine.

Besides the no-HT use case we're discussing, since I opened the issue an additional use case emerged where I need pcm-latency on a server where the number of available cores is different than the number of logical cores. I have the same two-sockets server, but I manually offline all cores in only one of the two sockets by running

echo 0 > /sys/devices/system/cpu/cpu<i>/online

for all cores in said socket. I might need to do this both with HT on and off.

from pcm.

sravisun avatar sravisun commented on August 27, 2024

Sure will update the code without cores offline check. Will let you know once it is ready
Thank you

from pcm.

matte21 avatar matte21 commented on August 27, 2024

Thank you!

from pcm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.