Btw the comparison is by no mean complete, just 2 ...
# xschem
s
Btw the comparison is by no mean complete, just 2 circuits and without the .spiceinit file you mentioned in another channel to speed up ngspice a little bit
s
Thanks Steven, you are anticipating some tests i had planned to do for comparison, Are the above tests done on a single computer? or are you using parallel Xyce on multiple machines? (just do be fair about sim times). Xschem can report back a status window after sim is finished if the
status
checkbox is selected in the '`Simulations->Configure simulators and tools`' configuration dialog box (see 1st picture) . I believe this is the default, so if nothing appears after Xyce completes let me know. Status dialog shows both standard error (the Xyce errors) and stdout (Xyce output) and the exit code (completed / fail), see example 2nd picture of a successful run. Xschem refreshes the raw data by simply unloading/loading raw data (Simulation menu), however i don't think the raw file can be loaded while Xyce is still running. For viewing the status of the running simulation I need to check Xyce documentation. If you know a way to do that let me know i can easily implement that.
s
Yes the test are done a single beefy laptop (6 core i9-8950HK,32GB RAM). Yes I use parallel Xyce. Since I run Xyce from xschem after pressing 'simulate' and not with the mpirun command, Xyce is running on 1 core. The circuits i used were too small to really test mpirun as the simulation time was similar to serial Xyce or parallel Xyce with 1 core. Would it be possible to add the mpirun command with a variable for the amount of cores to be used for simulation in the simulation editor window?
Indeed by default a status windows is shown, but after the simulation has completed. For long simulations I like to see the progress, eg. with hspice I can see in which phase it is and when it has simulated another data point (so I can refresh my view and potentially cancel the simulation if it is wrong)
Maybe someone from the xyce team @Eric Keiter? can chip in? Is it possible to get an update when a new data point is calculated?
s
@Steven Bos if you know the command line to run a parallel Xyce sim you can just throw in the comand in the simulator launch text entry in Simulations->Configure simulators and tools. If you give me a reasonable command that is expected to run a parallel simulation and that could be used by others too i can add a template, so instead of only one Xyce simulator option i will create one for serial and one for parallel in the Configure simulators dialog box.
s
Great @Stefan Schippers! Two commands come to mind: • With variable to select the amount of cores you want to use (if you choose more than you have it will not run and report that)
Copy code
mpirun -np 6 Xyce file.spice
• Without variable it autodetects the amount of cores available and runs with all of them:
Copy code
mpirun Xyce file.spice
Xyce does not make a distinction in name between Xyce serial and Xyce parallel (both executables are called Xyce and only
Copy code
Xyce -capabilities
will show you which one it will run). What I currently do (are there better ways?) is make a symbolic link to usr/local/bin. I refer to the Xyce version I want to use and xschem is able to call it. I can imagine making a symbolic link XyceParallel and XyceSerial to each respective directory and executabe but that would require additional user actions. Another possibility would be to refer to <xyce serial path>\Xyce and <xyce parallel path>\Xyce but than the user needs to submit where the paths to these directories are
s
@Steven Bos first of all i have added a slot for Xyce parallel. If you update xschem and bring up
Simulations->Configure simulators and tools
you see the Xyce parallel option. The user has to fill in the installation paths for the executables. Since they have the same name there is no standardized way to automatically call one or the other. The
Help
button in dialog box explains the meaning of variables $N, $n etc.
s
Seems to work @Stefan Schippers. I am not sure if I did the git update correct though as initially this new option was not visible after git pull, ./configure, sudo make, sudo install. After pressing
Restore to default
i got a bunch of errors and after pressing
Cancel
the option was there when I relaunched.
(the screenshot shows xyce parallel on 6 cores took 4.6 sec vs xyce serial 3.3s).