Feature Request - CPU Affinity CheckBox Option Upgrade

Started by JackRyan, December 09, 2015, 06:45:25 PM

Previous topic - Next topic

JackRyan

First, I apologize if I am simply missing something. I own a 10 license pack of Process Lasso. Really like the product. However there is one feature I think would be really nice to have... unless I am completely missing the fact it already exists. (I've looked).

While on most of my workstations it's not a problem, my primary workstation is a dual E5-2697v2 - which has 48 Cores.

I many times on the fly want to adjust CPU affinity based on specific needs at that time. Doing 3D work; I may go to lunch, want to give 46 of th 48 cores to my current render; and put all other processes on the last 2 so theres no crossover.

With 48 cores... that's a lot of check boxes. Even just going up or down from 12 to 36 or 8 to 32... it's a bit of a pain.

A nice feature would be to have a "select all" in the "Adjust CPU Affinity" window. Also, a "Deselect All".   Also, for 2 core+ systems, perhaps a checkbox or drop down for "CPU 1 Only".

As we are now seeing 30+ core processors coming out; and in dual configurations - thats even more to deal with.

Lastly; a small "bug". But for every new program I install, PL sets the default CPU affinity to 32 CPUs of the 48.  This likely I am guessing dates back to when 32 was all that existed perhaps?

In closing; this would be a great feature; not as a preset - but just an easier way to check and uncheck lots of boxes. Pre-sets would be nice; but the needs of the hour dont always fit into "5 options" I would set up, etc.

Thanks!

Jack

Jeremy Collake

Absolutely! The omission of a 'Check/uncheck all' option is something I will immediately correct. I'll be releasing a beta soon, testing dual-code signing with SHA1 and SHA2, and try to have it completed by then.

As for the bug, I will also investigate this. You are right, this is surely an artifact from the days when only 32 cores were supported.

I'll update this thread as I make progress.

Thank you very much for pointing this out.

As for an easier method of selecting/deselecting CPU cores, I have actually planned a graphical solution to this. I did not want to mention it publicly until it was done, but - well - here it is. THAT should make it dramatically easier for selection of large number of cores. Profiles will also be added.
Software Engineer. Bitsum LLC.

Jeremy Collake

I have completed the addition of the button "Invert Selection"  (which at least addresses a lot of the issue) to v8.9.1.1-beta, which is in the process of building as I write this.

I will add 'Clear' before the next final as well. That covers all use cases. That will be in v8.9.1.3-beta, which comes sometime soon after this build.

I have not yet had a chance to look into the bug report you make.

Later (maybe v9), we will work on adding additional capabilities, such as selection a % of total cores, other aforementioned options, and other improvements.

Software Engineer. Bitsum LLC.

Jeremy Collake

8.9.1.3 beta now issued with 'Clear' button added in addition to 'Invert selection'. That should immediately cover both use cases in the two applicable CPU affinity dialogs (generic and saved list).

Now for the bug report, which appears to be that processes with no set default CPU affinity (new) come with a pre-selection of only 32 of the processors checked in the dialog(s). Correct me if wrong.
Software Engineer. Bitsum LLC.

BenYeeHua

Maybe you can try improve it better, just like the "1-3", "0;2-5" in the picture, adding that function should helps.
As you will use similar of this while printing some pages only, they should familiar to that rules. ;)

edkiefer

You mean having a copy affinity rules from one process to another ?

If so that's not bad idea.
Bitsum QA Engineer

DeadHead

Followup question to this thread, would it be possible to add something like this:

Set affinity for THIS process to [these cores] - put all other running processes to [these other cores]?

Windows 10 Pro 64 (swedish) || Xeon 5650 @ +4 GHz || 24 gig ram || R9280 Toxic

BenYeeHua

Quote from: edkiefer on December 11, 2015, 10:43:02 AM
You mean having a copy affinity rules from one process to another ?

If so that's not bad idea.
Yup, something similar, just like the attached picture.

Ticking is easy for normal user that has 4 cores, but I has seen many people start having 32-64 core of CPUs for rendering computer(Photoshop or something like that), so by adding this, it may allow a faster way to set the rules directly than ticking it. :)
(because of the muscle memory, typing on the keyboard is much faster for repeated jobs) :)
As long as there is a example(like "0-1, 4"), they should understand how it works. :D

Maybe focus on this column automatic after clicking on change the current CPU affinity may helps too, just click, point, point, point, type(12-36)with the numpad, enter. :)

Jeremy Collake

Funny you mention that, I indicated in the release announcement that I would be adding our CPU affinity in text format support to the CPU affinity selection dialog. The same way it's stored in the INI file, e.g. 1-3;5 (for cores 1 through 3, to 5).

Software Engineer. Bitsum LLC.

BenYeeHua

lol, sometimes the changelog is too long, then I will always missing something. ::)

JackRyan

Jeremy,

I just wanted to send you a (late I'm sorry been busy with work) THANK YOU for implementing this new feature.

I am very impressed with the support service and responsiveness by your company. And of course you have a great product too!

This pretty much solves my dillema -- I know 48 Cores; I'm hurting ;)   One add on - that isn't a huge thing, but might be nice (as we are going to be seeing new CPUs with more Cores and Hyper Threading down the road.... is to add perhaps check/uncheck column.

As cores are often divided into 4s, and your columns go to 8. Being able to say - with a 48, or 60 core system, to click 3 times and turn on or off 24 cores.... thats a great option.

I only say this because - and I think this is a valid point:

I have 48 cores. Now there are a lot of 60 core systems out there. So if I have full CPU Affinity 0-47 selected; and I want to drop to half; either allocate to 1 processor full core - or 2 processor and half cores.... No way around it I have to click 24 times. Or 30 with a 60 core machine. Bump that up to a 96 core machine.... well it becomes a big hassle.

The invert feature is nice. But a lot of times I am running a program at full usage of all cores. And I want to quickly drop it to 8, 16, 24. The invert feature is nice; but not the perfect solution.

Thank you however; great response time; and I look forward to using this product on more systems. (I bought 10 licenses but we have 35 workstations) I just havent had the time to have my tech staff get the additional licenses and do the installs.

Thanks again!

PS.  I see you bumped up to 64 cores. My advice unless you want to make this a paid upgrade, go to 96. It saves you the hassle of the update later. Because its coming; and then your program will already support it. Just a thought.

Jeremy Collake

Thanks Jack!

These were just quick tweaks to help, I've got much more planned. In fact, I am writing a whole new CPU affinity selection component in a way that will make it so easy. I don't want to go into too much detail, because I want it to be a surprise.

Part of that will be simply accepting text input, e.g. 7-15;31-47, which maybe I can add in a minor update. I can perhaps allow easier checking/unchecking of entire columns too.

What you'll see is me add the 'easy stuff' in minor updates, then go all out and add the more sophisticated CPU affinity selection in the next major update. So, I'll do what I can to add more convenience features ASAP, then we'll have the 'right solution' come shortly there-after.

As for extending support beyond 64 cores, that is a biggie and is part of what I am calling 'iteration 2' internally. It's a full rewrite and massive extension to our fundamental technologies that I've been working on for some time. It won't be much longer until it's ready.
Software Engineer. Bitsum LLC.