user cpu time is the time spent by the processor in executing your program code in user space.
while working with arrays, time spent in iterating over the array will fall under user cpu time.
System CPU time
system cpu is the time spent by the processor in executing system calls in kernel space which your program code requires.
when you are working with arrays, time spending in memory allocation by malloc will be counted in system cpu usage
RAM is the real memory which is different from virtual memory.
virtual memory helps a system run multiple programs at the same time.
virtual memory uses swap files..
swap files are stored on the disk. When the os needs it, it copies it from the disk to the main memory.
Each program uses a chunk of memory, which are defined using a set of addresses. Each of these addresses is infact virtual and can be mapped to an address/location on the real memory or swap pages which are written to disk.
page tables are used to translate virtual address used by the running application into real addresses used by the OS
advantages of virtual memory
more applications can be opened/used simultaneously.
more security as each program uses memory different from the other.
disadvantages of virtual memory
applications become slower if more virtual memory is used because data needs to be loaded from disk more often.
GPU is Graphics Processing Unit.
GPUs can be used to work with CPUs to accelerate deep learning applications.
started by NVIDIA in 2007
compute intensive parts of applications are normally done by GPU, others are taken care by CPU. How???
how does a GPU handle compute intensive tasks and not a CPU?
CPU cores process instructions sequentially, but GPU consists of a large no of smaller, efficient, parallel cores which can handle multiple tasks at one time.
GPUs have more transistors compared to a CPU and are designed for parallel processing and not sequential processing.