Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

sammy.d

macrumors regular
Original poster
Jun 18, 2010
109
0
If I am doing something on my computer than is quite intensive on resources (e.g. encoding videos or maybe CAD) is there a way I can tell the computer that "this single application is the only ting in the world that I care about right now so only focus on that"? Being a MacBook from a few years ago, it wasnt really built for intensive computing so it isn't very fast and I want to find a way to optimise the speeds when I need to, forgetting all of the unnecessary background processes that the computer does. Is this possible or do I just have to ensure that application is the only one running and put up with the 'background OS stuff'?

Also, just out of interest, what manages the delegation of threads to different processor cores? Does the OS figure which core will handle what and try to divide it up evenly? Or is it the responsibility of whoever wrote the program to write it a certain way and use certain techniques to utilise all cores?
 

luisito

macrumors regular
Nov 15, 2012
215
0
what manages the delegation of threads to different processor cores? Does the OS figure which core will handle what and try to divide it up evenly? Or is it the responsibility of whoever wrote the program to write it a certain way and use certain techniques to utilise all cores?

To all 3 questions: The way a program chooses how many cores to use, depends on the program itself and the way it compiles and executes its instructions. This goes back to the manufacturer, because they define the most optimal way to do so on the code of the program itself.

I've heard of executable programs in the past that allow another program to use more cores, however, none of them have been successful. Why? Because like I said, a program has already been tailored to use a set amount of cores, and even if you "extend" the resources, the program can't do it because it wouldn't know how to split it instructions into different parts which will be executed at the same time and them put them together again. If more cores are given, 100% of the time, the program will slow down, because it will try to use more cores that it is capable of.

Let me give you an analogy, just as an example: Lets pretend that you (the program) own 13 different bicycles, you can only ride 1 at a time, because you are physically limited, you only have 1 body and 1 pair of legs, imagine each seat of each bicycle is a core, so, you can only use 1 core at a time, you may take your time (slow down) trying to decide with bike to use as well. Now imagine that you, your wife, daughter and son, a family of 4 (which is a more powerful program), rides a tandem bike with 4 seats, now you are able to use all 4 seats at the same time and in order to move forward you need to synchronize your pedaling, but because you are a more powerful program, the synchronization is defined in your instructions and know how to do it effectively. A program that doesn't know how to synchronize and split up the work, ends up being slowed.

I think I said the same thing twice. Well I hope this helps you, I tried my best.

In the matter of practicality, no. You can't force more cores into a program unless you are willing to sacrifice speed, which is ironic, because you are trying to make things faster on the first place.

Any program will benefit greatly from more RAM. The more RAM it has, the faster the program is, the smoother, and the greater and more complicated things you can do, such as encoding videos and CAD. You may have the fastest processor of the world, but if you don't have enough RAM to do what you need, the program will either be as slow as a snail, or freeze.

Processing power and RAM power are usually confused, which I believe is your case. The processor power aids on the instructions of the program itself, the more complicated tools it has, the more processing power it need BUT RAM power aids on whatever you have created on the program. Both work together for the same end, but each do a different thing.
 

Weaselboy

Moderator
Staff member
Jan 23, 2005
34,137
15,602
California
You can use the Terminal commands nice and renice to reallocate resources.

That said, if you are only running the one main app you want processing, not much is going to help to any noticeable degree.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.