Number of functioning CPUs - multithreading

My operating system shows I'm having 32 cores in my CPU however, any program I run written by me or downloaded shows only 20. Any clarification please?
I have attached screenshots for more illustration. Thanks!

try use some miner like xmr-stak and check if they can detect all the cores

Related

Emulating a heterogenous system, like an ARM Processor with P and E Cores

I'm trying to emulate a processor which consists processor cores with different max frequencies per core, like ARM processors or newer Intel processors which have a couple of Performance Cores and Efficiency Cores.
I tried it with Qemu, but I only didn't get far, the only thing I found was qemu-system-aarch64 where you can configure cores per die and die count using nema but i did't find a possibilty to change frequency or core architechture for a specific die. Is it even possible with qemu or is there a alternative? Preferably the emulation should be able to run linux.
For clarification, I'm trying to show that on a heterogeneus system i.e. a processor with different core speeds a certain framework works better then another one.
Thanks to Nate I found Intel Simics which is able to simulate heterogeneous systems.

Using all physical or logical cores for multiprocessing?

I think this question isn't new, but I couldn't find a clear answer for this: I have a Fortran-code and a Intel core i7 with 6 physical and 12 logical cores. At this moment my code is running on the 6 physical cores, i.e. on each core is running the same code. I saw at the inter power gadget that the utilization is ca. 50%, therefore I want to know if I get my results (nearly) twice as fast if I run the code on the 12 logical cores. I have also heard that I get in certain circumstances my results slower if I use the logical cores for running the code, so I'm not sure about what to do.
Thank you for your help!

Linux Webserver - htop shows extreme cpu usage?

I am a bit confused about what the tool "htop" shows as cpu usage and average load. I was asked to have a look at a webserver which is performing incredibly slow.
I googled a bit and always found the statement that everyting above 1.00 in average load is terrible when you only have one cpu in the machine.
However, my "htop" experience looks like this:
htop screenshot
Can someone please tell me what exactly is going on here? Is this bad or do I misunderstand everything?
Thank you for your help.
In your screenshot the CPU usage bars are colored in green and red. Press '?' in htop for a help screen to show up. From there you will see that green color is for a normal priority userspace applications CPU usage and the red color is for kernel threads.
Basically, in your screenshot all the CPU cores are 100% busy and most of the time they spend in the kernel.
Yes, this is bad. Further investigation is needed to tell what exactly is going on here.
The htop screenshot is showing you each of the cores of the CPU and the usage for each. What you really want to be looking at are the processes and how much CPU they are consuming.
There's an article here which explains it in more detail: http://www.thegeekstuff.com/2011/09/linux-htop-examples
Goodluck!

Could posix-threads created in one process run parallel across two physical processors?

Could posix threads created in one program (process) run on two physical processors?
I have some multi-thread code, need to run them on a dual eight-core AMD server node ( eight real core no hyperthreading). Not sure if these threads can be mapped across the two physical processors.
Also, it would be very helpful, if someone can suggest some linux command for monitoring CPU usage.
Thank you in advance.
You can use default commands that come with any linux distro
1) top
2) ps
top - is interactive and displays different parameters updating them over the time
ps will be usefull with aux argument
ps aux
It will display different parameters about the active programs.
You can look man pages for this commands to make them display info you need
yes, the threads may run on different CPUs unless you do something on the OS layer to bind them to a spcific CPU.
top is one of the commands to monitor CPU usage

Differentiating IOWAIT in Linux

I'm working on a monitoring agent that works with systems using the Linux kernel. By opening /proc/stat , you can easily tell how much time one one or all CPUs (aggregate) is burning waiting for I/O requests to complete.
I'm trying to find a way to break that number down so that I can differentiate between disk and network i/o. For instance, after converting the unit out of kernel ticks to seconds, you see that all CPU's combined have spent 1024 seconds waiting for I/O. I'd like to know how many of those were burned due to slow network connections.
I'm not sure if this is even possible, any help is appreciated :) I don't see anything in /proc/net or sysfs that would help.
Try to look at SystemTap. It is very similar to Solaris DTrace and you can get to a different levels of detail.

Resources