Instance CPU affinity


As discussed in this topic, i use multiple instances with huge cpu load and the only way to get it stable was to disable 3 CPU on 4. The trick is to avoid synchronization issue when using multiple CPU, so only 1 CPU supports all the workload (Windows + GP).
I have used the config in live situation and all worked fine but i can’t stop thinking I can find a better way to work with the full CPU power of my PC.

I found a way to start Windows with 4 CPU and to set the “CPU Affinity” for GP but can’t make any script to set the CPU affinity of an instance on a different CPU. (ex: main instance = CPU0 and instance 1 = CPU2).
I can do it manually threw the Windows Task Manager and it works fine, but my question is :
is there a way to set it and save it inside GP ?

Best regards,

Are you talking of a CPU or a Core?

Sorry, i’m talking about core (referred as CPU in the task manager).
My CPU is an Intel Core i7 (4 core), the hyperthreading is disabled and I would to affect each instance to a different core.

Normally when you use separate instances of GP, each of them should be run on a different core.
At least on Mac that is the case.
What issue do you face?

On Windows, if no affinity was defined for the main instance all instances work on all available cores and I have lower performances than working on only 1 core.
If an affinity is defined for the main instance, all other instances work on the same core as the main.
I can manually set the affinity for all instances when they are started but I have to do it each time I start my system.
My question is to know if there is a way to set it inside GP for each instance, and automatically restaure it at startup ?

Ok, as I am on Mac I cannot help you for windows.
As fas as I know there is no option in Gig Performer to influence that.

This should apply to Windows, as well.

Process Lasso is a cheap application that has been mentioned a couple of times in this community. For example: here and here.

Thank you npudar, Process Lasso is a very interesting tool !

Unfortunately, I can’t distinguish the main instance from its childs … so, every new instance keep the same affinity as the parent.
Process Lasso can distinguish extra paramater given to the process and set a different affinity, but it seems that there’s no argument given by GP to a specific instance.

Is it possible to launch a new instance (not the main) from command line, and give a fake parameter to formally identify the instance ?

Of course, I wrote a blog article: Gig Performer | How to use multiple instances in Gig Performer 4


Realy nice !!!
Process Lasso + Instance parameter solve my problem :slight_smile:
GP is the most powerful live software I have ever used.

Thank you very much for your help.

1 Like

You’re very welcome :beers: