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 ...
Playing with computers since age 13, time to start documenting all the wonderful things and treasures I have discovered and developed - also a blog to serve as a time-saver by not having to reinvent the wheel.
Saturday, November 27, 2021
Thursday, November 25, 2021
Running MONGEN for TOPS-10 on PDP-10 KS10
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
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.
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).
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 machine | o/s | set 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 address | IP Address |
---|---|---|---|---|---|---|---|
vax780 | vax/vms 1.0 | 4x; throttle=2m; 17% | idle=vms; 7% | I | L | ||
vax780 | vax/vms 1.5 | 4x; throttle=2m; 17% | idle=vms; 7% | I | L | ||
vax780 | vax/vms 3.0 | 4x; throttle=2m; 17% | idle=vms; 7% | I | L | ||
microvax3900 | netbsd/vax 8.0 | 1x; throttle=1900k; 14% | idle=netbsd; 3% | I | N | 10.42.2.24 | |
microvax3900 | openbsd/vax 5.8 | 1x; throttle=1900k; 11% | idle=openbsd; 3% | I | N | 10.42.2.28 | |
microvax3900 | 43bsd/vax quasijarus | 1x; throttle=1900k; 9% | idle=quasijarus; 3% | I | N | 10.42.2.29 | |
microvax3900 | openvms/vax 7.3 | 1x; throttle=1900k; 17% | idle=vms; 7% | I | L | 31.1 | 10.42.2.4 |
microvax3900 | openvms/vax 7.3 | 1x; throttle=1900k; 17% | idle=vms; 7% | I | L | 31.10 | 10.42.2.5 |
vax780 | openvms/vax 7.3 | 1x; throttle=500k; 4% | idle=vms; 2% | I | N | 31.11 | 10.42.2.33 |
pdp11 - pdp11/84 | rsx 11m plus | 1x; throttle=1560k; 4% | idle; 3% | T | N | 31.12 | |
microvax3900 | ultrix 4.0/vax | 1x; throttle=1900k; 11% | idle=ultrix; 7% | I | L | 31.15 | 10.42.2.9 |
vax8600 model 8650 | vax/vms 4.7 | 1x; throttle=13300k; 47% | idle=vms; 2% | I | N | 31.23 | 10.42.2.27 |
pdp11 - pdp11/73 | rsts/e 10.1 | 1x; throttle=1460k; 4% | idle; 3% | T | N | 31.28 | |
microvax2 - vaxstation II | openvms/vax 7.3 | 1x; throttle=450k; 6% | T | N | 31.30 | 10.42.2.30 | |
vax780 | vax/vms 4.4 | 1x; throttle=500k; 4% | idle=vms; 2% | I | N | 31.31 | |
vax780 | vax/vms 4.0 | 1x; throttle=500k; 4% | idle=vms; 2% | I | N | 31.33 | |
pdp11 - pdp11/70 | rsx 11m plus | 1x; throttle=1360k; 4% | idle; 3% | T | N | 31.34 | |
vax780 | openvms/vax 7.3 | 1x; throttle=500k; 4% | idle=vms; 2% | I | N | 31.35 | 10.42.2.31 |
vax780 | openvms/vax 7.3 | 1x; throttle=500k; 4% | idle=vms; 2% | I | N | 31.36 | 10.42.2.32 |
pdp10 - ks10 | tops-10 7.04net | 3x; throttle=5400k; 9% | idle; 7% | I | N | 31.37 | |
microvax 3100 M38 | vax/vms 5.5-2h4 | 1x; throttle=1900k; 13% | idle=vms; 29% | T | N | 31.38 |