Tuesday, November 23, 2021

SIMH VAX and PDP Emulators: Getting the maximum performance out of SET CPU IDLE and SET THROTTLE

Netdata - gigabyte-h410m.sanyalnet.lan
Netdata - gigabyte-h410m.sanyalnet.lan

I have been maintaining a zoo of emulated classic computers in my home lab (affectionately called SANYALnet Labs) for well over a decade now. Till last year everything was running on two mid-2000s Xeon-based Dell PowerEdge blade servers which I sold and replaced with a single home-built PC consisting of a 10th-generation Intel core i7 8-core 16-thread processor on a Gigabyte H410M motherboard. I then consolidated all of my SimH-emulated VAX and PDP machines onto a MX-Linux virtual machine running on top of Ubuntu 20.04 on this new PC, allocating 8 cores and 4 GB of memory to the MX-Linux virtual machine. After running many experiments with SET CPU IDLE and SET THROTTLE configuration parameters of SimH, I reached a point of satisfactory resource usage by the 20 SimH VAX and PDP machines. 

Digital Equipment Corporation DEC VAXstation-II running OpenVMS/VAX 7.3 under SIMH VAX emulator
VAXstation-II running OpenVMS/VAX 7.3 under SIMH VAX emulator

Digital Equipment Corporation DEC MicroVAX-3100/M38 running SMALLTALK on VAX/VMS 5.5-2H4 under SIMH VAX emulator
MicroVAX-3100/M38 running SMALLTALK-80 on VAX/VMS 5.5-2H4 under SIMH VAX emulator. Thanks to Mark Wickens for this awesome SIMH machine (more here)


This includes two VAX machines with graphical desktops running in Xephyr virtual X-server displays (a VAXstation-3800/m38 and a VAXstation-II).


DEC VAX servers, PDP-10 and PDP-11 mainframes emulated on MX-Linux
MX-Linux VirtualBox machine running 20 SimH VAX and PDP machines

What strikes me as remarkable after all the tweaking is that in a quiescent state of the 20 SimH VAX and PDP machines, they along with an instance of DECnet/Python  and many other Ubuntu-launched processes collectively take up just one core of the i7. Here is a typical top dump flittered on SimH machines:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND

 2964 localuser   30  10  239960 133480   2720 S  12.5   3.3 237:33.90 ./31.10_QCOCAL

21894 localuser   30  10  141516  38940   2884 S  12.5   1.0 125:40.63 ./31.15_OSTARA

24430 localuser   30  10  997148  61204  13744 S  12.5   1.5 132:22.28 ./31.38_lv_vaxstation3100m38 31.38_LV.ini

25426 localuser   30  10   61432  13452   3552 S  12.5   0.3   2:10.75 ./31.37_twonky_pdp10 31.37_TWONKY.ini

 1676 localuser   30  10  147996  19656   6632 S   6.2   0.5  63:52.29 ./31.12_juichi_pdp11 31.12_JUICHI.ini

 5104 localuser   30  10   34940   6928   2508 S   6.2   0.2 274:54.07 ./0.0_VAXVMS3.0

 5212 localuser   30  10  158236  21696   6648 S   6.2   0.5  60:15.30 ./31.28_rst101_pdp11 31.28_RST101.ini

 6536 localuser   30  10  339040  13880   4208 S   6.2   0.3  82:47.40 ./10.42.2.29_43bsd_vax 10.42.2.29_43BSD_VAX.ini

17984 localuser   30  10  306932  73160   4208 S   6.2   1.8 115:51.55 ./10.42.2.28_openbsd_vax 10.42.2.28_OPENBSD_VAX.ini

21718 localuser   30  10  180388  45232   4188 S   6.2   1.1  19:03.34 ./31.36_njevx2_vax780 31.36_NJEVX2.ini

22451 localuser   30  10   18108   2664   2232 S   6.2   0.1 294:17.77 ./0.0_VAXVMS1.0

24658 localuser   30  10 1022468  51356  13800 S   6.2   1.3  28:05.32 ./31.30_vaxstn_microvax2 31.30_VAXSTN.ini

 4218 localuser   30  10   18108   4752   2276 S   0.0   0.1 252:08.74 ./0.0_VAXVMS1.5

10312 localuser   30  10  298716  79472   4360 S   0.0   2.0  96:38.62 ./10.42.2.24_netbsd_vax 10.42.2.24_NETBSD_VAX.ini

12979 localuser   30  10  155760  45328   4132 S   0.0   1.1   8:36.88 ./31.31_xliv_vax780 31.31_XLIV.ini

14559 localuser   30  10  180060  77632   4132 S   0.0   1.9   8:50.49 ./31.33_xl_vax780 31.33_XL.ini

15270 localuser   30  10  158236  21468   6644 S   0.0   0.5  52:30.82 ./31.34_nanaju_pdp11 31.34_NANAJU.ini

19596 localuser   30  10  254140  44076   2820 S   0.0   1.1  28:15.56 ./31.11_cloudy_vax780 31.11_CLOUDY.ini

20922 localuser   30  10  180384  47036   4256 S   0.0   1.2  14:45.57 ./31.35_njevx1_vax780 31.35_NJEVX1.ini

24460 localuser   30  10  254124  46476   4168 S   0.0   1.2  13:40.34 ./31.23_xlvii_vax8600 31.23_XLVII.ini


The following is a table of the current idle/throttle settings of the VAXen and PDP SimH machines. Overall, PDP-10 and PDP-11 emulators do better with throttle, especially in terms of dreaded DECnet thrashing. The VAXen do fine with idle. The following table is probably difficult to read, so here is the google docs sheet.


simh machineo/sset throttle - factor; value; SIMH host core usage (% of one 10th-gen core i10)set cpu idle; SIMH host core usage (% of one 10th-gen core i10)Throttle or Idle?simh version - New (4.x) or Legacy (3.9)?DECnet addressIP Address
vax780vax/vms 1.04x; throttle=2m; 17%idle=vms; 7%IL  
vax780vax/vms 1.54x; throttle=2m; 17%idle=vms; 7%IL  
vax780vax/vms 3.04x; throttle=2m; 17%idle=vms; 7%IL  
microvax3900netbsd/vax 8.01x; throttle=1900k; 14%idle=netbsd; 3%IN 10.42.2.24
microvax3900openbsd/vax 5.81x; throttle=1900k; 11%idle=openbsd; 3%IN 10.42.2.28
microvax390043bsd/vax quasijarus1x; throttle=1900k; 9%idle=quasijarus; 3%IN 10.42.2.29
microvax3900openvms/vax 7.31x; throttle=1900k; 17%idle=vms; 7%IL31.110.42.2.4
microvax3900openvms/vax 7.31x; throttle=1900k; 17%idle=vms; 7%IL31.1010.42.2.5
vax780openvms/vax 7.31x; throttle=500k; 4%idle=vms; 2%IN31.1110.42.2.33
pdp11 - pdp11/84rsx 11m plus1x; throttle=1560k; 4%idle; 3%TN31.12 
microvax3900ultrix 4.0/vax1x; throttle=1900k; 11%idle=ultrix; 7%IL31.1510.42.2.9
vax8600 model 8650vax/vms 4.71x; throttle=13300k; 47%idle=vms; 2%IN31.2310.42.2.27
pdp11 - pdp11/73rsts/e 10.11x; throttle=1460k; 4%idle; 3%TN31.28 
microvax2 - vaxstation IIopenvms/vax 7.31x; throttle=450k; 6% TN31.3010.42.2.30
vax780vax/vms 4.41x; throttle=500k; 4%idle=vms; 2%IN31.31 
vax780vax/vms 4.01x; throttle=500k; 4%idle=vms; 2%IN31.33 
pdp11 - pdp11/70rsx 11m plus1x; throttle=1360k; 4%idle; 3%TN31.34 
vax780openvms/vax 7.31x; throttle=500k; 4%idle=vms; 2%IN31.3510.42.2.31
vax780openvms/vax 7.31x; throttle=500k; 4%idle=vms; 2%IN31.3610.42.2.32
pdp10 - ks10tops-10 7.04net3x; throttle=5400k; 9%idle; 7%IN31.37 
microvax 3100 M38vax/vms 5.5-2h41x; throttle=1900k; 13%idle=vms; 29%TN31.38



No comments:

Post a Comment

"SEO" link builders: move on, your spam link will not get posted.

Note: Only a member of this blog may post a comment.