dacapobench / dacapobench

The DaCapo benchmark suite

Home Page:https://www.dacapobench.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RC3: xalan validation error on default with 52 or more threads.

heshpdx opened this issue · comments

Xalan, using msjdk-17 on aarch64, fails on default size. Passes on small size and large size.

Default:

$ ../JAVA/jdk-17.0.8.1+1/bin/java -jar dacapo-23.9-RC3-chopin.jar -v -n 3 xalan zxing
Class name: org.dacapo.harness.Xalan
Configurations:
short     An XSLT processor for transforming XML documents
long      Xalan repeatedly transforms a set of XML documents
author    Apache Software Foundation
license   Apache License, Version 2.0
copyright Copyright (C) 1999-2003 The Apache Software Foundation
url       http://xml.apache.org/xalan-j/
version   xalan 2_7_2
sizes     default large small
Using scaled threading model. 160 processors detected, 160 threads used to drive the workload, in a possible range of [1,2048]
Version: xalan 2_7_2 (use -p to print nominal benchmark stats)
===== DaCapo 23.9-RC3-chopin xalan starting warmup 1 =====
Normal completion.
Digest validation failed for stdout.log, expecting 0x87d959a674499334decdea63251cdd59a79576f8 found 0x82bdbcd79df81a0115d534c806fe8048ee8351c7
===== DaCapo 23.9-RC3-chopin xalan FAILED warmup =====
===== DaCapo 23.9-RC3-chopin xalan starting warmup 2 =====
Normal completion.
Digest validation failed for stdout.log, expecting 0x87d959a674499334decdea63251cdd59a79576f8 found 0x82bdbcd79df81a0115d534c806fe8048ee8351c7
===== DaCapo 23.9-RC3-chopin xalan FAILED warmup =====
===== DaCapo 23.9-RC3-chopin xalan starting =====
Normal completion.
Digest validation failed for stdout.log, expecting 0x87d959a674499334decdea63251cdd59a79576f8 found 0x82bdbcd79df81a0115d534c806fe8048ee8351c7
===== DaCapo 23.9-RC3-chopin xalan FAILED =====
Validation FAILED for xalan default

Small:

$ ../JAVA/jdk-17.0.8.1+1/bin/java -jar dacapo-23.9-RC3-chopin.jar -v -n 3 -s small xalan
Class name: org.dacapo.harness.Xalan
Configurations:
short     An XSLT processor for transforming XML documents
long      Xalan repeatedly transforms a set of XML documents
author    Apache Software Foundation
license   Apache License, Version 2.0
copyright Copyright (C) 1999-2003 The Apache Software Foundation
url       http://xml.apache.org/xalan-j/
version   xalan 2_7_2
sizes     default large small
Using scaled threading model. 160 processors detected, 160 threads used to drive the workload, in a possible range of [1,2048]
Version: xalan 2_7_2 (use -p to print nominal benchmark stats)
===== DaCapo 23.9-RC3-chopin xalan starting warmup 1 =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan completed warmup 1 in 372 msec =====
===== DaCapo 23.9-RC3-chopin xalan starting warmup 2 =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan completed warmup 2 in 174 msec =====
===== DaCapo 23.9-RC3-chopin xalan starting =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan PASSED in 135 msec =====

Large:

$ ../JAVA/jdk-17.0.8.1+1/bin/java -jar dacapo-23.9-RC3-chopin.jar -v -n 3 -s large xalan
Class name: org.dacapo.harness.Xalan
Configurations:
short     An XSLT processor for transforming XML documents
long      Xalan repeatedly transforms a set of XML documents
author    Apache Software Foundation
license   Apache License, Version 2.0
copyright Copyright (C) 1999-2003 The Apache Software Foundation
url       http://xml.apache.org/xalan-j/
version   xalan 2_7_2
sizes     default large small
Using scaled threading model. 160 processors detected, 160 threads used to drive the workload, in a possible range of [1,2048]
Version: xalan 2_7_2 (use -p to print nominal benchmark stats)
===== DaCapo 23.9-RC3-chopin xalan starting warmup 1 =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan completed warmup 1 in 102634 msec =====
===== DaCapo 23.9-RC3-chopin xalan starting warmup 2 =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan completed warmup 2 in 98361 msec =====
===== DaCapo 23.9-RC3-chopin xalan starting =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan PASSED in 98304 msec =====

@heshpdx could you please do two things?

  1. Use -t 32 to cap the thread count at 32 to see if this (alone) is the issue.
  2. Attach the stderr.log (from scratch, after running with -preserve)

Thread count does make a difference. I did a bisection and found that 51 threads is ok but 52 is not ok.

The stderr.log is empty after the failure.

$ /data/1/mjm/JAVA/jdk-17.0.8.1+1/bin/java -jar dacapo-23.9-RC3-chopin.jar -v -t 51 -preserve -n 1 xalan
Class name: org.dacapo.harness.Xalan
Configurations:
short     An XSLT processor for transforming XML documents
long      Xalan repeatedly transforms a set of XML documents
author    Apache Software Foundation
license   Apache License, Version 2.0
copyright Copyright (C) 1999-2003 The Apache Software Foundation
url       http://xml.apache.org/xalan-j/
version   xalan 2_7_2
sizes     default large small
Using scaled threading model. 160 processors detected, 51 threads used to drive the workload, in a possible range of [1,2048]
Version: xalan 2_7_2 (use -p to print nominal benchmark stats)
===== DaCapo 23.9-RC3-chopin xalan starting =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan PASSED in 6774 msec =====
$ /data/1/mjm/JAVA/jdk-17.0.8.1+1/bin/java -jar dacapo-23.9-RC3-chopin.jar -v -t 52 -preserve -n 1 xalan
Class name: org.dacapo.harness.Xalan
Configurations:
short     An XSLT processor for transforming XML documents
long      Xalan repeatedly transforms a set of XML documents
author    Apache Software Foundation
license   Apache License, Version 2.0
copyright Copyright (C) 1999-2003 The Apache Software Foundation
url       http://xml.apache.org/xalan-j/
version   xalan 2_7_2
sizes     default large small
Using scaled threading model. 160 processors detected, 52 threads used to drive the workload, in a possible range of [1,2048]
Version: xalan 2_7_2 (use -p to print nominal benchmark stats)
===== DaCapo 23.9-RC3-chopin xalan starting =====
Normal completion.
Digest validation failed for stdout.log, expecting 0x87d959a674499334decdea63251cdd59a79576f8 found 0x6edec6db1641ea33b64258e84350188908d928e6
===== DaCapo 23.9-RC3-chopin xalan FAILED =====
Validation FAILED for xalan default

Thanks so much. I'll see if I can reproduce this on one of my platforms.

I didn't reproduce the problem on Cavium ThunderX CN8890, Ubuntu 18.04, Temurin-17.0.8.1+1 aarch64

$ ./jdk-17.0.8.1+1/bin/java -jar ./dacapo-23.9-RC3-chopin.jar -n 3 xalan
Using scaled threading model. 48 processors detected, 48 threads used to drive the workload, in a possible range of [1,2048]
Version: xalan 2_7_2 (use -p to print nominal benchmark stats)
===== DaCapo 23.9-RC3-chopin xalan starting warmup 1 =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan completed warmup 1 in 4982 msec =====
===== DaCapo 23.9-RC3-chopin xalan starting warmup 2 =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan completed warmup 2 in 3481 msec =====
===== DaCapo 23.9-RC3-chopin xalan starting =====
Normal completion.
===== DaCapo 23.9-RC3-chopin xalan PASSED in 2918 msec =====

Two more data points.

  • I tried using openjdk 11.0.20.1 2023-08-24 on the Ampere Altra, with same results: 51 or fewer threads will pass, 52 or more threads will fail.
  • I also logged into a Huawei Taishan (Kunpeng 920) aarch64 server with 96 cores. Exact same results (51 passes, 52 fails).

I have trivially reproduced this by setting the thread count to a value greater than 51, i.e. -t 52.

Investigating.

This is related to #229.

When running with 52 threads stdout shows:

Processing: 105%