Saturday, November 27, 2021

Hacking TOPS-10 for 4 Lines of DUP11


DEC DUP-11 communications card

Jotting this down, "recipe" thanks to kind souls (initials of RLA and RV probably show up in the recipe execution) ... to be wrapped up over time ...



Thursday, November 25, 2021

Running MONGEN for TOPS-10 on PDP-10 KS10

PDP-10 KS10 TOPS-20 with DECnet and ANF-10 networking on DUP11 DUP0 and DUP1 lines
PDP-10 KS10 TOPS-20 with DECnet and ANF-10 networking on DUP11 DUP0 and DUP1 lines

With the help of a kind friend, I managed to change the node-name and DECnet address of a TOPS-10 7.04 (GALAXY version 5.1) SimH-emulated PDP-10 KS10 by running MONGEN. I need to preserve the session for future reference, especially the questions and answers/responses. Hence this post.

I learned from the friend that MONGEN saves responses in [10,7,MON]BUILD.MIC and it is useful to save a copy of this file with the filename <nodename>.MIC for future reference. This makes it very easy to replicate the configuration on other KS10 installations.

I also learned that on TOPS-10 the directory [1,4] is SYS:, [1,5] is NEW: and [1,3] is OLD:. The convention is to put “experimental” programs in [1,5], "production" programs in [1,4] and old versions in [1,3].  Experimental programs in NEW: ([1,5]) should be moved after testing to SYS: ([1,4]). This includes the monitor, which is typically named SYSTEM.EXE. Using "expect" and "send" keywords, the SimH emulator allows selection of the monitor to boot at the "BOOT>" prompt. Examples are:

To boot the default monitor [1,4]SYSTEM.EXE:
expect "BOOT>" send "\r"

Or, we can specify the monitor and the location to boot, as in these examples:

expect "BOOT>" send "[1,4]SYSTEM\r"

expect "BOOT>" send "[1,5]SYS2\r"

expect "BOOT>" send "[1,5]SYSTEM\r"

The manual for running MONGEN on KL and KS TOPS-10 systems is on bitsavers (TOPS-10 Software Installation Guide AA-PS12C-TB).  It "provides the site administrator, system manager, system programmer, or software specialist with the information required to Install the TOPS-10 software on KL and KS processors."

Here is part of the session log from when I built a new monitor with the updated DECnet node name and address. This monitor supports two DUP lines on DUP11. DUP0 connects to DECnet network and DUP1 connects to ANF-10 network.


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