The central processing unit or "processor" inside a computer which executes the instructions in a computer program.
Relates to issues dealing with multiple processors
Cores different contention
"If that processors has more than one cpu can the interrupts run on different cpu cores at the same time"
from question "What happens when two interrupts occur at the same time in linux kernel"
"Given that you re seeing extra tasks causing a slowdown you likely either have resource contention via locking or your tasks are cpu bound and having more tasks than processors cores will cause slowdowns"
from question "Is there a general rule for a maximum amount of parallel tasks?"
System resources process
|Much more effective||
"As soon as you go beyond single processors it s much more effective to add another cpu or two to system than to struggle with gpu calculations"
from question "High volume SVM (machine learning) system"
"The operating system will give your program all the resources it needs the reason your process is not consuming all the cpu is probably because it s waiting for the io sub system more than the processors"
from question "Give all possible resources to a program"
Data ram cache
"Having data structures that start on 4 byte word alignment on cpus with 4 byte buses and processors is far more efficient when moving data around memory and between ram and the cpu"
from question "Behaviour of sizeof operator in C"
|Cache physically closer||
"The point of this cache is to store data that the cpu is using quite regularly to speed up transfer time since the cpu cache is physically closer to the processors then ram is"
from question "What is the difference between cpu cache and memory cache"
Computer logical core
"Multicore refers to a computer or processors that has more than one logical cpu core and that can execute multiple instructions at the same time."
from question "What is a "Logical CPU Core""
"Multicore refers to a computer or processors that has more than one logical cpu core and that can physically execute multiple instructions at the same time"
from question "Multithreading and multicore differences"
"Not only is it more expensive in terms of developer costs designing a cpu is vastly more difficult than writing user-space assembly code but it would increase the transistor count of the processors"
from question "Why are complicated memcpy/memset superior?"
"One addition for embedded cpu architecture they have to be usually cheaper than mainstream processors so that they do not raise the product s life considerably"
from question "Why do we need different CPU architecture for server & mini/mainframe & mixed-core?"
"I find using system monitor that consistently 100 of one cpu is used when i run the program directly in terminal whereas when i run it in bash in a loop a maximum of 60 of cpu usage is recorded and seems to be linked to the longer completion time although the average cpu usage is higher over the 4 processors"
from question "C++ program significantly slower when run in bash"
"The difference you notice is very small but i think the multi-thread processors is spending more time because the concurrency for the cpu resources between the threads"
from question "Single vs Multi-threaded JMS Producer"
"The cpu is indeed slower on sparc 1.2ghz and as answered by one of the sun s engineers t2 is usualy 3 times slower for single-threaded application than modern intel processors"
from question "Java memory allocation performance (SunOS vs Windows)"
"So whether or not method 5 or 6 is faster depends on the cpu i can only surmise this is because the branch prediction in the command processors of the cpu is smarter on the new processors but i m not really sure"
from question "How can you get the first digit in an int (C#)?"
|Cache much more||
"Notice also the the cpu cache is much more important than processors registers today"
from question "Why can't we always use the register storage class in C?"
"Some fancy compilers understand the un interrelatedness of instructions to a limited extent and will automatically interleave instruction flows probably over a longer window than the cpu sees to better utilise the processors"
from question "Explicit code parallelism in c++"
"Passive loadbalancing if a physical cpu is running more than one task the scheduler will attempt to run any new tasks on a second physical processors"
from question "Multicore + Hyperthreading - how are threads distributed?"
"To the operating system a single thread which i assume is what you mean by java process essentially cannot use cpu on more than one processors which may or may not mean a physical core-- see below simultaneously"
from question "How can I get the cpu usage a jvm process consumes for each cpu core using java?"
"Binding threads to cores prevents the operating system from moving around threads between different processors cores which speeds up the executing especially on numa systems machines with more than one cpu sockets and separate memory controller in each socket where data locality is very important"
from question "Hybrid MPI/OpenMP in LSF"
"I have a quad core processors and the threadpoolexecutor is set to 4 core threads but when i submit my callables hundred or so to the threadpoolexecutor java never uses more than 25 cpu"
from question "Callable code won't use more than one CPU with ThreadPoolExecutor"
"If a task is cpu bound calcuating something making it multi threaded will only improve performance if you have more than one processors to run the calculations"
from question "How come usual Main class is Thread? And why is it faster?"
"If the processors is loaded enough then my thread works fine but when the processors is more or less free i rich quickly my cpu limitation 50 and finally the pool terminates and needs to be recycled"
from question "How can I avoid App Pool termination during long-time ASP.NET calculations?"
"Many current processors chips incorporate more than one cpu and a cpu may itself be able to interleave a couple of threads"
from question "How multithreading works"
"In general when used on single processors single core machine this should be sufficient assuming int size same or smaller than cpu word like 32bit int on 32bit cpu"
from question "How to declare and use "one writer, many readers, one process, simple type" variable?"