This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TINA/Spice/TINA-TI: TINA using only half of available hyper threads.

Part Number: TINA-TI

Tool/software: TINA-TI or Spice Models

Hi,

I have been running up against CPU limitations with my TINA simulations. My poor mans Desktop machine runs Linux on a Core Duo (Dual core processor) and I operate TINA under WINE. This does a perfect job of multi-threading. In the simulation options I see a grand total of 2 threads available (one per core) and when I run simulations I see both cores running at fully 100% utilisation. Flat out.

But.. it's rather dated and not as fast as could be. Therefore I tried running on someone else's i7 based machine running Windows, which boasts 4 cores and 8 hyper-threads. When TINA is installed on this machine running native under Windows, it offers only 4 threads, and when using the maximum available the processor reports only 50% utilisation. As each core actually runs at a slightly lower clock rate than my Core Duo machine, the simulation actually runs slower.

Wow, my Core Duo 3GHz machine of 10 years vintage outperforms a Quad core i7 !!!!!

Not to be beaten. I span up a Google Compute Engine VM, using a 24 hyperthreaded CPU running on the very latest Skylake i7. This time running Linux and with TINA running under WINE. Once again TINA only sees the total number of cores which again is 50% of possible threads. So instantly this 24 thread machine was sliced in half and inside TINA I see 12 available threads. Such a shame. But it is therefore apparent that this lack of hyper threading visibility is common to TINA when running under Windows or on Linux.

When I run simulations on this VM, I see 100% utilisation on each of the threads TINA has detected. That's a 24 v-thread machine, showing up in TINA as 12 threaded machine and running each of the 12 threads at fully 100% utilisation. A grand total of 50% CPU utilisation.

Was it faster than my Core Duo machine........yes quite significantly.

Now google offer a maximum of 96 v-thread per VM, So according to my testing, this would give me a total of 48 threads within TINA, and with this kind of configuration I expect to achieve usable performance without needing to spend most of my design day, waiting for TINA to complete.

Great, but running the Google VM 5 hours a day 5 days a week will cost a cool $400 p/m. Whereas if I run a VM with on 32 v-threads the price drops to $80 p/m

Therefore you can see that TINA's inability to use fully all the hyper threads makes compute time much more expensive.

Bottom line, why does the "Very Cool" multi-threading feature inside TINA not have access to all available hyper threads.

Easy to miss if the wrong info is parsed, for example on the VM I discussed we see:

lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 24
On-line CPU(s) list: 0-23
Thread(s) per core: 2
Core(s) per socket: 12
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel

What's the answer? Can I start TINA and tell it manually via CLI how many threads to use, is there a config file somewhere where this info was placed at install? Is this info read from the system at run-time?

Thanks

Aidan

  • Aidan,

    The thread allocation in a multi-core processor can be controlled via the Number of Threads behavior in the Analysis/Options menu.
    The TINA help menu gives the following:

    Performance: ... By default the number of threads is equal to the number of cores in your CPU. However you can control this with the Number of threads parameter.

    Number of threads: This parameter is set to Max by default and results in one thread per core. You can, however, set it to any number between 1 and Max, or to Dynamic. If you have a quad (4) core machine, it would be good to set this parameter to 3, to leave some computing capacity for other programs and processes. You can also use the Dynamic parameter which controls the number of threads automatically, depending on other processes running on your computer.

    Based on these comments and your testing, it sounds like TINA9 was designed to use one thread per core, to avoid hogging CPU resources.
    TINA9 has been out for a few years. Newer versions of TINA - available for purchase from DesignSoft - may have different thread management strategies, but you  would have to check with them.
    I hope this helps. Please let me know if you have any more questions.

    Regards,
    John