Monday, August 11, 2008

Intelligently utilizing your CPU cores

With the advent of multiple CPU cores, software - particularly Operating systems - need to be aware of additional core and how to utilize them efficiently. Windows does a fine job at it. However, it doesn't give the user much control over it other than allowing a basic processor affinity allotment.

But then again why would a user want to look into the nitty-gritty's of processor usage? Well because God's in the details! Most users do not need to look into how a system manages process priorities and core usage but experts/technically inclined users (read geeks) will really appreciate the minute control that one can have over the cores.
Today's application that I'm referring to is a real smart one called Process Lasso. Process Lasso is specifically designed to let you harness all the processes running in the system to avoid unpleasant bottleneck situations. Its main purpose is to enable computer responsiveness and lets the user create specific rules for all the processes running on the computer leading to much better system responsiveness.
First of all you must understand that Process Lasso does allow automatic process utilization, but in order to get maximum benefit you will have to decide for yourself which core to assign to what process. How does one determine that is difficult to say, as this depends on the programs and the tasks that you do on your computer. E.g. If you are decompressing a compressed zip/rar file, one entire core will be dedicated to that process. If this is the same core that explorer.exe is using currently then obviously your PC will slow down. Therefore you will need to be alert to have the forethought of switching the core. This is the reason why this program is not for everyone but only for the experienced technically inclined users.



Also do not expect incredible speed boosts/computer responsiveness as this depends purely on the task at hand, e.g. decompressing a file is a CPU intensive task no doubt but it is also a hard-disk intensive task at the same time, therefore the speed increase or responsiveness does not depend on CPU alone but rather the entire system.

Thirdly, Process Lasso does not use easy to understand terminology, terms such as processor affinity, process restraint settings etc aren't exactly friendly terms and can get quite confusing. On top of that, the help section exists on the website is not the best but it's adequate for those who understand technical stuff, laymen would only get further confused. This is generally the case with user created applications, being said that the application itself is great. To give where credit is due, the author has taken a lot of effort to make balloon pop-ups where required to help understand the software better.



Fourthly Process Lasso is not an attempt to replace Task Manager. That job happily System internals Process Explorer can do which Microsoft bought over.

What Process Lasso can do

The interface is straightforward, displays all currently running processes as well as a graph with CPU usage and responsiveness. Just like Windows Task Manager you can see the list of all processes detailed activity such as working set memory, commit size, priority, CPU affinity (which core it is utilizing), CPU usage, location, etc.

If you want to assign a CPU core to a specific task, you need to open the program first. Now you can assign which process/program should use what core. Of course by default all processes use whichever core is available, but you can set a heavy CPU task to only the second core and explorer.exe to the first core only. To do so, just click off the CPU # of the process that you don't want to use. The main advantage here over Windows Task Manager Process Lasso remembers the setting even after a restart. Neat huh!



Process Restraint

The goal is to improve system responsiveness and this can easily be achieved with Process Lasso's internal Process Restraint setting. What this does is, it restraints the process trying to hog more than the allotted limit of the system resources if another process at the same time needs CPU cycles therefore allowing better system responsiveness. Process restraint is confused a lot, please read the "How Does Process Lasso's Restraint Work?" which will help you understand it better in a non-technical way.



Wonderfully you have the option of editing Out-of-control Restraint settings that it permits by providing exceptions and setting the overall percentage value to trigger restraint setting.


Whitelist/Blacklist

You can gain further control over the processes by using whitelisting/blacklisting processes; even wildcards work here. This is prefect as a precaution for blocking dangerous spyware/viruses.

This is the icing on the cake. Process Lasso lets you export/import your settings. That means even if you reformat the system and start afresh, you just need to import the settings and you are good to go.



Bottomline

Process Lasso's goal is to increase system responsiveness. The goal is not something that is an end but an ongoing process, in short a journey that must be constantly altered. Process lasso does a great job handing over the power over how CPU is allotted to running process and how the resources should be allocated in case a certain threshold is exceeded. However, this presupposes one thing, that you are knowledgeable about these things and therefore need a program to help you achieve your goal. Therefore, care should be taken when tweaking up everything as problems may crop up along the way. But for those that want this sort of power and control, you'll be pleasantly satisfied.

This program is a freeware and if you really like it, do donate to keep development of this great product alive!

Until next time, happy tweaking and don't forget to post your experiences here in the comments below.

Thanks to http://www.techtree.com/India/Guides/Intelligently_utilizing_your_CPU_cores/551-91467-584-4.html


1 comment:

Anonymous said...

Its very interesting. good application, Thanks for sharing bro,
ill try and let u know my feedback.
Subash

How to Get files from the directory - One more method

 import os import openpyxl # Specify the target folder folder_path = "C:/Your/Target/Folder"  # Replace with the actual path # Cre...