Using Multiple Core Systems

In this topic:

Single Step Runs

SIMetrix will make use of multiple core processors to speed up simulations. It does this by dividing the work for calculating device equations amongst multiple threads each running on its own core. For example, a circuit with 100 transistors will need the equations governing the transistors to be calculated for each iteration. With a 4 core system, each core can be assigned the equations for 25 transistors to be calculated in parallel which will allow the iteration to complete in less time.

However, only the device equation calculation is subject to multiple core execution. There are many other tasks that are performed during a simulation run that remain single-threaded, that is executed in sequence on a single core. For this reason multiple cores will not give a speed up proportional to the number of cores.

Using Multiple Cores for Single Step Runs

SIMetrix will automatically choose how many cores to use for the simulation. For simple circuits it will use a single core and beyond a certain level of complexity it will use all the cores available on a single chip. So if you have a 4-core machine where all 4 cores are implemented on a single processor chip, SIMetrix will use all 4 cores as long as the circuit complexity is sufficient to justify it.

If you have a machine with, for example, 8 cores implemented using 2 4-core processor ICs, SIMetrix will use just one of the ICs so therefore 4 cores.

You can override the number of cores using the mpnumthreads .OPTIONS setting. E.g.:

.OPTIONS MPNUMTHREADS=2

will force 2 cores to be used as long as the computer system does actually have 2 cores. SIMetrix will not use more threads than there are physical cores available.

Be aware that hyperthreaded logical processors are not counted as a physical processor. So if you have 4 physical cores and 8 logical cores implemented using hyperthreading, SIMetrix will use a maximum of 4 cores.

Multi-core Multi-step Simulation

Multiple core execution does give a very substantial speed improvement when applied to multi-step analyses. This is covered in User's Manual/Analysis Modes/Multi-step Analyses/Using Multiple Cores for Multi-step Analyses.