Big iron equivalence (ANSIBench + I/O tests) on obsidian - prediction log. Author: Claude Opus 5.5 (claude-opus-5-5). Series letter: B. Written BEFORE building or running anything, and before reading ANSIBench's results wiki (which holds ict's earlier runs) or any published 3090/Cray figures. What I knew: 249.4 MHz 604e, 83.1 MHz bus (my series Q), 1 MB L2 (from memory, not checked), two SCSI disks on a 53C875 Wide/Fast-20 bus, both "Other SCSI Disk" with queue_depth 1, no Fortran, no ESSL. "gcc" below is gcc 2.95.3 with ANSIBench's default flags (-O2). Format: ID [confidence] claim. --- round 1 --- B01 [0.80] All seven ANSIBench programs (linpack, stream, whetstone, dhrystone, nbench, coremark, hint) build with gcc 2.95.3 and GNU make on obsidian with no source edits. B02 [0.60] LINPACK n=100 double precision (gcc) reports 25-50 MFLOPS. B03 [0.80] LINPACK n=1000 double precision (gcc) is lower than n=100 (8 MB matrix vs 1 MB L2). B04 [0.45] LINPACK n=1000 double precision (gcc) is 10-25 MFLOPS. B05 [0.55] LINPACK n=100 single precision beats double precision by less than 30%. B06 [0.50] xlc -O3 beats gcc on LINPACK n=100 double precision by 15% or more. B07 [0.55] Dhrystone 2.1 (gcc, register version) gives 300-550 VAX MIPS. B08 [0.50] Whetstone (gcc) gives 100-250 MWIPS. B09 [0.60] STREAM triad is 150-300 MB/s (bus peak 665 MB/s). B10 [0.50] CoreMark (gcc) scores 300-600 iterations/s. B11 [0.50] NBench integer index (Pentium 90 = 1) is between 2.5 and 5. B12 [0.55] Sequential read of a file larger than RAM on a JFS filesystem runs at 15-35 MB/s. B13 [0.50] Sequential write of the same file (including a final fsync) runs at 10-30 MB/s. B14 [0.65] Random 4 KB reads from a cold file, one at a time, give 90-180 per second. B15 [0.70] Eight concurrent random readers on the same disk give less than 1.3x the single-reader rate (queue_depth 1, so no command reordering on the drive). B16 [0.45] Random readers spread over both disks give at least 1.7x one disk's rate. B17 [0.50] 4 KB appends with fsync after each one run at under 300 per second. B18 [0.60] Dongarra's LINPACK 100 table lists single-processor IBM 3090 VF models between 10 and 25 MFLOPS (Fortran). B19 [0.65] Dongarra's LINPACK 100 table lists the Cray-1S between 10 and 15 MFLOPS. B20 [0.70] obsidian's best LINPACK n=100 double precision result beats every single-processor 3090 entry in Dongarra's LINPACK 100 table. Sun Oct 11 07:20:50 PM MDT 2026 --- round 2, after LINPACK/STREAM/Whetstone/Dhrystone/CoreMark results and Dongarra's --- performance report (LINPACK 100 n=100 ~95 MFLOPS here; 3090/180J VF 16, ES/9000-711 VF 86; --- TPP column: 3090/600J VF 540, ES/9000-711 VF 422). Not yet written: my own blocked LU. --- B21 [0.55] My blocked LU (C, gcc -O2, 4x4 register-blocked update, packed panels) reaches 120-250 MFLOPS at n=1000 (ANSIBench's unblocked linpack: ~23). B22 [0.60] At n=1000 it beats ANSIBench's n=100 figure (~95 MFLOPS). B23 [0.70] An independent re-timing of the unblocked (daxpy) LU at n=100, gettimeofday per factor+solve, agrees with ANSIBench's ~95 MFLOPS within 15%. B24 [0.50] Its rate falls by less than 25% between n=500 and n=1500 (blocked, so L2 misses matter little). Sun Oct 11 07:30:31 PM MDT 2026 === OUTCOMES (scored 2026-10-11) === B01 HIT [0.80] all seven built with gcc 2.95.3 and GNU make, no source edits. STREAM needed the documented make switches (mp= XCFLAGS=-DDIS_OPENMP) and, to load at all, n=2000000 (the default 10M elements exceeds AIX's 256 MB data segment: exec fails "not enough memory"). B02 PARTIAL [0.60] badly worded: ANSIBench's argument is the array dimension and it solves n = size/2, so "linpackdp 100" is n=50 (~95 MFLOPS). For a true n=100 (linpackdp 200): 51.0 MFLOPS by its clock() timing, 46.5 by my gettimeofday timing; just over the range by one timer, inside by the other. B03 HIT [0.80] true n=1000 (linpackdp 2000): 19.2 MFLOPS, against 51.0 at n=100. B04 HIT [0.45] 19.2 MFLOPS. B05 MISS [0.55] at n=100 single precision 75.5 vs double 51.0 MFLOPS (gcc): +48%. (xlc: 104.2 vs 54.3, +92%.) At n=50 it was the other way round (74 vs 95). B06 MISS [0.50] xlc -O3 -qarch=ppc 54.3 vs gcc -O2 51.0 at n=100: +6%. B07 MISS [0.55] register version 284.6 VAX MIPS; the version without register 316.2. B08 HIT [0.50] 200.0 MWIPS. B09 MISS [0.60] triad 100.3 MB/s (copy 89.9, scale 89.8, add 101.1), 15% of the bus peak. B10 HIT [0.50] 564.5 iterations/s. B11 HIT [0.50] integer index 4.692 (floating-point 4.294). B12 MISS [0.55] 64 KB reads: 11.6 MB/s cold, then 14.7-15.1 in five runs; 14.3 with 1 MB reads, 14.0 with 4 KB. Just under the range. iostat: 32 KB transfers (JFS read-ahead). B13 HIT [0.50] 15.0 and 14.0 MB/s for 1000 MB incl. fsync (hdisk1); 8.8 MB/s on hdisk0's /home. B14 MISS [0.65] 193.5 reads/s (median 5.0 ms) on hdisk1, 190.4 on hdisk0: above the range. The test files cover ~2 GB of 146 GB, so seeks are short; not a full-disk figure. B15 HIT [0.70] 8 readers: 200.8/s against 193.5 (1.04x). Some reads waited 1.2-4.7 s. B16 HIT [0.45] 2 readers on 2 disks 374.1/s (1.93x); 8 readers on 2 disks 368.3/s. B17 HIT [0.50] 55.4 per second on /store, 50.2 on /home; median 17.9 ms each. B18 PARTIAL [0.60] five single-processor 3090 VF entries: 180J VF 16, 180E VF 13, 180 VF 12 in range; 180S 9.6 and 120E VF 7.5 below it. B19 PARTIAL [0.65] two Cray-1S entries: 12 (CFT 1.12, 1983 run) in range, 27 (cf77 2.1) above. B20 HIT [0.70] best n=100 here 54.3 MFLOPS (xlc); the fastest single-processor 3090 entry is 16 (3090/180J VF). (The ES/9000-711 VF, 1 proc, is 86.) B21 MISS [0.55] 106.0 MFLOPS (gcc, nb=32) for the code as it stood. After reordering the update so 64 rows of L stay in L1: 138.9 (gcc), 147.6 (xlc). B22 HIT [0.60] 106.0 > ~95 (and > 51.0, the true n=100 figure). B23 MISS [0.70] 46.5 MFLOPS against the ~95 I named; that figure was n=50. Against ANSIBench at a true n=100 (51.0) my timing agrees within 9%. B24 HIT [0.50] it rose: 106.6 (n=500), 106.0 (n=1000), 117.3 (n=1500), gcc nb=32. Calibration: <0.50: 2/2 0.50-0.79: 9/20 (3 partial, 8 miss) >=0.80: 2/2 Not predicted: ANSIBench's LINPACK size argument is the array dimension, n = size/2 (inherited from linpackc.new), so its "100 x 100" results are 50 x 50 systems. Sequential disk transfer is capped near 15-17 MB/s per disk and ~18 MB/s for both disks together (iostat: 95% busy each at 8.4 + 9.5 MB/s), i.e. a shared 20 MB/s-class SCSI link, not the 40 MB/s Wide/Fast-20 the adapter is named for. STREAM's default does not even load under AIX's segment model. With one command queued per disk, 8 random readers starve each other: max latency up to 4.7 s. --- round 3, after ict's "does it live up to its big-iron looks?" and after seeing Dongarra's --- entries for RS/6000 370/375 (POWER1 62.5 MHz: 26 / 90), 390 (53 / 181), 58H (101 / 197), --- 590 (130 / 236), 990 (140 / 254) and the SP2 tables. Not yet looked at: other POWER1 --- models, PowerPC RS/6000s, POWER3, or any prices. --- B25 [0.55] Dongarra lists the POWER1 RS/6000-580 (62.5 MHz) at 30-45 MFLOPS on LINPACK 100. B26 [0.80] No POWER1 RS/6000 (any model) beats obsidian's 54 on LINPACK 100. B27 [0.50] The table has a 604e RS/6000 (43P-140, F50 or H50 class); if so its LINPACK 100 is 55-80 MFLOPS. (UNPROVEN if no such entry.) B28 [0.60] The first RS/6000 top model (POWER1 540 or 550, 1990) listed above $100,000 base. B29 [0.50] The POWER2 990 (1993) listed above $200,000 in a base configuration. B30 [0.55] A 250 MHz 7043-150 listed under $15,000 base in 1999-2000. Sun Oct 11 09:12:04 PM MDT 2026 === OUTCOMES, round 3 (scored 2026-10-11) === B25 HIT [0.55] RS/6000-580 and -980 (62.5 MHz): 38 MFLOPS. B26 HIT [0.80] best POWER1 entries are the 580/980 at 38; obsidian 51 (gcc) / 54 (xlc). B27 MISS [0.50] the F50 (604e 332 MHz, 1 processor, xlf -qhot) is listed at 116, TPP 317: IBM's Fortran gets twice what my C does from the same kind of processor. B28 HIT [0.60] Model 550: $130,000 base processor price with 64 MB and 800 MB disk (Computergram/Tech Monitor, October 1990). B29 UNPROVEN [0.50] found no price for the 990. For scale: the POWER2 591 listed at $57,500 in 1995, "comparable to" the 590's price at its October 1993 announcement. B30 UNPROVEN [0.55] found no list price for the 250 MHz 7043-150. Calibration (all 30): <0.50: 2/2 0.50-0.79: 11/25 (3 partial, 9 miss, 2 unproven) >=0.80: 3/3 Not predicted (round 3): the SP2 thin node class (RS/6000-390, POWER2 66.5 MHz) is level with obsidian on LINPACK 100 (53 vs 54) and ahead on TPP (181 vs 148).