Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Increasing C++ Program CPU Use

I have a program written in C++ that runs a number of for loops per second without using anything that would make it wait for any reason. It consistently uses 2-10% of the CPU. Is there any way to force it to use more of the CPU and do a greater number of calculations without making the program more complex? Additionally, I compile with C::B on a Windows computer. Essentially, I'm asking whether there is a way to make my program faster by increasing usage of CPU, and if so, how.

like image 937
TimeCoder Avatar asked Dec 10 '22 07:12

TimeCoder


2 Answers

That depends on why it's only using 10% of the CPU. If it's because you're using a multi-CPU machine and your program is using only one CPU, then no, you will have to introduce concurrency into your code to use that additional horsepower.

If it's being limited by something else (e.g. copying data to and from the disk), then you don't need to focus on CPU, you need to focus on whatever the bottleneck is. Most likely, the limiter will be reading from the disk, which you can improve by using better caching mechanisms.

like image 87
Billy ONeal Avatar answered Dec 25 '22 23:12

Billy ONeal


It's really not the program's right or responsibility to demand additional resources from the system. That's the OS' job, as resource scheduler.

If it is necessary to use more CPU time than the OS sees fit, you should request that from the OS using the platform-dependent API. In this case, that seems to be something along the lines of SetPriorityClass or SetThreadPriority.

like image 38
ssube Avatar answered Dec 25 '22 23:12

ssube