Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"Love may fail, but courtesy will previal." -- A Kurt Vonnegut fan


computers / comp.os.vms / Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

SubjectAuthor
* Linux vs VMS x86 Performance Part 1: Java 8 benchmarksJake Hamby (Solid State Jake)
+* Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksIan Miller
|`* Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksVitaly Pustovetov
| +* Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksCraig A. Berry
| |`- Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksArne Vajhøj
| `- Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksArne Vajhøj
+* Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksArne Vajhøj
|+- Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksArne Vajhøj
|`* Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksArne Vajhøj
| `* Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksArne Vajhøj
|  `* Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksVitaly Pustovetov
|   `- Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksJake Hamby (Solid State Jake)
`- Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarksVitaly Pustovetov

1
Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30399&group=comp.os.vms#30399

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:8286:b0:765:a4f2:51ec with SMTP id ox6-20020a05620a828600b00765a4f251ecmr157693qkn.4.1696826060831;
Sun, 08 Oct 2023 21:34:20 -0700 (PDT)
X-Received: by 2002:a05:6808:30a7:b0:3af:6c87:144c with SMTP id
bl39-20020a05680830a700b003af6c87144cmr7679059oib.2.1696826060552; Sun, 08
Oct 2023 21:34:20 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Sun, 8 Oct 2023 21:34:20 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:46b0:abc0:f058:d345:e6d7:36bc;
posting-account=OGFVHQoAAAASiNAamRQec8BtkuXxYFnQ
NNTP-Posting-Host: 2600:1700:46b0:abc0:f058:d345:e6d7:36bc
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
Subject: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
From: jake.ha...@gmail.com (Jake Hamby (Solid State Jake))
Injection-Date: Mon, 09 Oct 2023 04:34:20 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 9587
 by: Jake Hamby (Solid St - Mon, 9 Oct 2023 04:34 UTC

It's been a while since I last posted here, but now that the OpenVMS x86 V9..2-1 release is out with a community license, I've finally set aside some time to create and configure a new VM in VirtualBox 7.0.10.

Since I knew what I was doing, it didn't take me too many hours to install OpenVMS, C, CivetWeb, DECset, COBOL, C++, Fortran, Lua, OpenJDK 8.0, OpenSSH, SSL 1.1.1, SSL 3, vGit, VMSI18N, WebUI, x86 macro (llvm-mc), and ZeroMQ. I did think to myself how daunting and confusing the whole post-installation process must be to someone new to VMS.

I'm a big fan of the Phoronix Test Suite, so I thought it would be educational to select the benchmarks that I know will have a good chance of running on VMS, then comparing to Linux. So I used PTS to run Java and other benchmarks first in an Ubuntu Server 22.04 VM (I'm running VirtualBox itself on Ubuntu 22.04 LTS and connecting remotely via PuTTY from Windows) with an identical VM config, then I ran them manually in OpenVMS.

The hardware is a Lenovo ThinkStation P340 Tower with an Intel Xeon W-1290P CPU @ 3.7 GHz, with performance CPU governor set with "cpupower", all systemd timer services disabled, and using the legacy COM ports to log in to OpenVMS instead of sshd. The host has 64 GB RAM, and the VMs have 6 CPUs (the max for the community VMS license) and 16 GB RAM.

My OpenVMS VM has two LsiLogic SCSI disks, and I should've used SCSI for the Ubuntu Server system disk, but I used SATA, and later made a second LsiLogic SCSI disk for disk benchmarks, which I'll cover in a later post. I used "VBoxManage modifyvm [name] --x2apic=on" and "VBoxManage modifyvm [name] --hpet=on" for both VMS and Linux (the VMS bootloader notices the presence/absence of X2APIC and I remember reading in a VSI doc that it benefits from HPET as well).

I remember seeing a post here complaining about the VSI port of the JDK being "only" Java 8, but I've found that a lot of Java programs, including some of the benchmarks I ran, either failed on Java 17 or occasionally ran much slower than Java 8 (Apache Spark ALS specifically). I uploaded my Linux results for both Java 8 and Java 17 to OpenBenchmarking.org, so you can compare the results here:

https://openbenchmarking.org/result/2310050-JHAM-UBUNTUV47,2310052-JHAM-UBUNTUV60

I can't use the Phoronix harness on OpenVMS, or at least not yet, as it's written in PHP but also dependent on UNIX-specific and even Linux-specific shell scripts and utilities. As a side note, I have a plan to port GNU bash to C++, with support to compile under C++03 or newer (specifically for VMS Alpha/Itanium), but optimized for newer C++ versions (which will help for x86).

In fact, my bash C++ / VMS port is in progress at my GitHub page, but it currently doesn't compile. I'll have to review my latest commits to jog my memory as to where I was in the project. My plan to not be dependent on fork() is dependent on getting rid of all the global variables, which is the major part of the work remaining, and then when fork() would normally be called, I'll exec() myself with a special command-line flag and then push the bash shell state to the child via a mailbox. That's my plan, anyway.

I'll write more about bash, coreutils, and the rest of GNV in a future post.. Back to Java on VMS. I had to run each benchmark by hand, so I'll post the results in tables below, along with the ratio of VMS to Linux speed. Here are the quotas that I set for my user account (and SYSTEM), based on merging recommendations from layered product release notes, including Samba. I had no problems with running out of quota.

Maxjobs: 0 Fillm: 1024 Bytlm: 3000000
Maxacctjobs: 0 Shrfillm: 0 Pbytlm: 0
Maxdetach: 0 BIOlm: 32767 JTquota: 4096
Prclm: 50 DIOlm: 32767 WSdef: 4096
Prio: 4 ASTlm: 2048 WSquo: 8192
Queprio: 4 TQElm: 100 WSextent: 16384
CPU: (none) Enqlm: 4000 Pgflquo: 10000000

First up, Java SciMark 2.0, which is a numerical benchmark, so it should have relatively good results on VMS, and it does. VMS scores are the average of 3 runs, followed by the speed percentage vs. Linux:

Composite Score: 3099.525 (99.7%)
FFT (1024): 1907.459 (99.4%)
SOR (100x100): 1832.324 (99.5%)
Monte Carlo : 1238.935 (99.5%)
Sparse matmult (N=1000, nz=5000): 2853.442 (97.3%)
LU (100x100): 7665.467 (100.76%)

So we can safely conclude that the performance of OpenJDK 1.8.0_372 for purely CPU-bound tasks in OpenVMS x86 is nearly identical to Linux on the same hardware and VM params. The differences between the two are within the margin of error considering the variance between individual runs.

Next up, DaCapo benchmarks. I'll give the description for the three that worked on VMS. Results are times in ms (lower is better), with the average of 2 runs, or 3 for Eclipse, plus % ratio of Linux / VMS time.

"H2 executes a TPC-C like benchmark written by Apache as part of the Apache Derby database. The application models: customers, districts, warehouses, purchases and deliveries.",

VMS score: 27135.0 (10.13% of Linux)

"jython executes (interprets) the pybench benchmark"

VMS score: 22000.0 (14.92% of Linux)

"Run eclipse's jdt (non-gui) performance tests"

VMS score: 169355.33 (9.09% of Linux)

These results are a bit more dismal. Let's see what the Renaissance Java benchmarks look like. In addition to having to "define/job JAVA$DELETE_ALL_VERSIONS TRUE" for Scala Dotty to work (otherwise it fails with a directory not empty error trying to delete a subdir), for the Apache Spark benchmarks to work, I also had to add "-Dspark.file.transferTo=false" to the Java line or else I get this exception:

23/10/07 19:16:10 ERROR Executor: Exception in task 5.0 in stage 1.0 (TID 6)
java.lang.AssertionError: assertion failed:
Current position 0 do not equal to expected position 27650
after transferTo, please check your kernel version to see if it is 2.6.32,
this is a kernel bug which will lead to unexpected behavior when using transferTo.
You can set spark.file.transferTo = false to disable this NIO feature.

at scala.Predef$.assert(Predef.scala:279)
at org.apache.spark.util.Utils$.$anonfun$copyFileStreamNIO$2(Utils.scala
:459)
at org.apache.spark.util.Utils$.$anonfun$copyFileStreamNIO$2$adapted(Uti
ls.scala:450)
at scala.Option.foreach(Option.scala:437)
at org.apache.spark.util.Utils$.copyFileStreamNIO(Utils.scala:450)
at org.apache.spark.util.Utils.copyFileStreamNIO(Utils.scala)
at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.writeParti
tionedDataWithChannel(BypassMergeSortShuffleWriter.java:246)

It's wonderful that the exception told me how to work around the bug, but I'm a little scared to think about who may still be using Linux 2.6.32!

The in-memory database test failed with an "org.mapdb.DBException$VolumeIOError" exception which I didn't investigate, and the ALS Movie Lens benchmark failed due to missing "chmod" command. This time, the benchmark results were in CSV format, and I averaged them without the first run's score (which tended to be noticeably slower with the JIT having to warm up) and converted to ms.

Scala Dotty: 8042.981 (10.39%)
Random Forest: 4008.678 (14.53%)
Apache Spark ALS: 34253.451 (5.52%)
Apache Spark Bayes: 31865.199 (5.73%)
Savina Reactors.IO: 24028.649 (24.79%)
Apache Spark PageRank: 10485.158 (22.20%)
Finagle HTTP Requests: 74394.711 (3.91%)
Akka Unbalanced Cobwebbed Tree: 34890.521 (25.9%)
Genetic Algorithm (Jenetics + Futures): 2520.791 (62.56%)

Finally, the Sunflow ray-tracing benchmark.

VMS score: 4470 ms (36.22%)

I hope this info has been of interest, and I look forward to trying out a future OpenJDK 11 release. As I noted up top, it's not in VSI's interest to release a Java 14 or Java 17 port without first releasing Java 8 and Java 11 ports, since the newer versions of the JDK and the command-line options for the JVM simply aren't backwards compatible, and I've found that many popular Java apps have a max supported Java version.

Regards,
Jake Hamby

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<54744bfd-8eba-4db9-80a6-f2a1fb45db16n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30401&group=comp.os.vms#30401

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:135a:b0:76d:8827:11a5 with SMTP id c26-20020a05620a135a00b0076d882711a5mr177039qkl.5.1696839031822;
Mon, 09 Oct 2023 01:10:31 -0700 (PDT)
X-Received: by 2002:a05:6808:1a04:b0:3ad:f525:52bf with SMTP id
bk4-20020a0568081a0400b003adf52552bfmr8304784oib.1.1696839031442; Mon, 09 Oct
2023 01:10:31 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Mon, 9 Oct 2023 01:10:30 -0700 (PDT)
In-Reply-To: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=92.12.170.186; posting-account=xnH4mQkAAADgGjKHSw0dMDzsXknFp5II
NNTP-Posting-Host: 92.12.170.186
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <54744bfd-8eba-4db9-80a6-f2a1fb45db16n@googlegroups.com>
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
From: gxy...@uk2.net (Ian Miller)
Injection-Date: Mon, 09 Oct 2023 08:10:31 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Ian Miller - Mon, 9 Oct 2023 08:10 UTC

On Monday, October 9, 2023 at 5:34:22 AM UTC+1, Jake Hamby (Solid State Jake) wrote:
> It's been a while since I last posted here, but now that the OpenVMS x86 V9.2-1 release is out with a community license, I've finally set aside some time to create and configure a new VM in VirtualBox 7.0.10.
>
> Since I knew what I was doing, it didn't take me too many hours to install OpenVMS, C, CivetWeb, DECset, COBOL, C++, Fortran, Lua, OpenJDK 8.0, OpenSSH, SSL 1.1.1, SSL 3, vGit, VMSI18N, WebUI, x86 macro (llvm-mc), and ZeroMQ. I did think to myself how daunting and confusing the whole post-installation process must be to someone new to VMS.
>
> I'm a big fan of the Phoronix Test Suite, so I thought it would be educational to select the benchmarks that I know will have a good chance of running on VMS, then comparing to Linux. So I used PTS to run Java and other benchmarks first in an Ubuntu Server 22.04 VM (I'm running VirtualBox itself on Ubuntu 22.04 LTS and connecting remotely via PuTTY from Windows) with an identical VM config, then I ran them manually in OpenVMS.
>
> The hardware is a Lenovo ThinkStation P340 Tower with an Intel Xeon W-1290P CPU @ 3.7 GHz, with performance CPU governor set with "cpupower", all systemd timer services disabled, and using the legacy COM ports to log in to OpenVMS instead of sshd. The host has 64 GB RAM, and the VMs have 6 CPUs (the max for the community VMS license) and 16 GB RAM.
>
> My OpenVMS VM has two LsiLogic SCSI disks, and I should've used SCSI for the Ubuntu Server system disk, but I used SATA, and later made a second LsiLogic SCSI disk for disk benchmarks, which I'll cover in a later post. I used "VBoxManage modifyvm [name] --x2apic=on" and "VBoxManage modifyvm [name] --hpet=on" for both VMS and Linux (the VMS bootloader notices the presence/absence of X2APIC and I remember reading in a VSI doc that it benefits from HPET as well).
>
> I remember seeing a post here complaining about the VSI port of the JDK being "only" Java 8, but I've found that a lot of Java programs, including some of the benchmarks I ran, either failed on Java 17 or occasionally ran much slower than Java 8 (Apache Spark ALS specifically). I uploaded my Linux results for both Java 8 and Java 17 to OpenBenchmarking.org, so you can compare the results here:
>
> https://openbenchmarking.org/result/2310050-JHAM-UBUNTUV47,2310052-JHAM-UBUNTUV60
>
> I can't use the Phoronix harness on OpenVMS, or at least not yet, as it's written in PHP but also dependent on UNIX-specific and even Linux-specific shell scripts and utilities. As a side note, I have a plan to port GNU bash to C++, with support to compile under C++03 or newer (specifically for VMS Alpha/Itanium), but optimized for newer C++ versions (which will help for x86).
>
> In fact, my bash C++ / VMS port is in progress at my GitHub page, but it currently doesn't compile. I'll have to review my latest commits to jog my memory as to where I was in the project. My plan to not be dependent on fork() is dependent on getting rid of all the global variables, which is the major part of the work remaining, and then when fork() would normally be called, I'll exec() myself with a special command-line flag and then push the bash shell state to the child via a mailbox. That's my plan, anyway.
>
> I'll write more about bash, coreutils, and the rest of GNV in a future post. Back to Java on VMS. I had to run each benchmark by hand, so I'll post the results in tables below, along with the ratio of VMS to Linux speed. Here are the quotas that I set for my user account (and SYSTEM), based on merging recommendations from layered product release notes, including Samba. I had no problems with running out of quota.
>
> Maxjobs: 0 Fillm: 1024 Bytlm: 3000000
> Maxacctjobs: 0 Shrfillm: 0 Pbytlm: 0
> Maxdetach: 0 BIOlm: 32767 JTquota: 4096
> Prclm: 50 DIOlm: 32767 WSdef: 4096
> Prio: 4 ASTlm: 2048 WSquo: 8192
> Queprio: 4 TQElm: 100 WSextent: 16384
> CPU: (none) Enqlm: 4000 Pgflquo: 10000000
>
> First up, Java SciMark 2.0, which is a numerical benchmark, so it should have relatively good results on VMS, and it does. VMS scores are the average of 3 runs, followed by the speed percentage vs. Linux:
>
> Composite Score: 3099.525 (99.7%)
> FFT (1024): 1907.459 (99.4%)
> SOR (100x100): 1832.324 (99.5%)
> Monte Carlo : 1238.935 (99.5%)
> Sparse matmult (N=1000, nz=5000): 2853.442 (97.3%)
> LU (100x100): 7665.467 (100.76%)
>
> So we can safely conclude that the performance of OpenJDK 1.8.0_372 for purely CPU-bound tasks in OpenVMS x86 is nearly identical to Linux on the same hardware and VM params. The differences between the two are within the margin of error considering the variance between individual runs.
>
> Next up, DaCapo benchmarks. I'll give the description for the three that worked on VMS. Results are times in ms (lower is better), with the average of 2 runs, or 3 for Eclipse, plus % ratio of Linux / VMS time.
>
> "H2 executes a TPC-C like benchmark written by Apache as part of the Apache Derby database. The application models: customers, districts, warehouses, purchases and deliveries.",
>
> VMS score: 27135.0 (10.13% of Linux)
>
> "jython executes (interprets) the pybench benchmark"
>
> VMS score: 22000.0 (14.92% of Linux)
>
> "Run eclipse's jdt (non-gui) performance tests"
>
> VMS score: 169355.33 (9.09% of Linux)
>
> These results are a bit more dismal. Let's see what the Renaissance Java benchmarks look like. In addition to having to "define/job JAVA$DELETE_ALL_VERSIONS TRUE" for Scala Dotty to work (otherwise it fails with a directory not empty error trying to delete a subdir), for the Apache Spark benchmarks to work, I also had to add "-Dspark.file.transferTo=false" to the Java line or else I get this exception:
>
> 23/10/07 19:16:10 ERROR Executor: Exception in task 5.0 in stage 1.0 (TID 6)
> java.lang.AssertionError: assertion failed:
> Current position 0 do not equal to expected position 27650
> after transferTo, please check your kernel version to see if it is 2.6.32,
> this is a kernel bug which will lead to unexpected behavior when using transferTo.
> You can set spark.file.transferTo = false to disable this NIO feature.
>
> at scala.Predef$.assert(Predef.scala:279)
> at org.apache.spark.util.Utils$.$anonfun$copyFileStreamNIO$2(Utils.scala
> :459)
> at org.apache.spark.util.Utils$.$anonfun$copyFileStreamNIO$2$adapted(Uti
> ls.scala:450)
> at scala.Option.foreach(Option.scala:437)
> at org.apache.spark.util.Utils$.copyFileStreamNIO(Utils.scala:450)
> at org.apache.spark.util.Utils.copyFileStreamNIO(Utils.scala)
> at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.writeParti
> tionedDataWithChannel(BypassMergeSortShuffleWriter.java:246)
>
> It's wonderful that the exception told me how to work around the bug, but I'm a little scared to think about who may still be using Linux 2.6.32!
>
> The in-memory database test failed with an "org.mapdb.DBException$VolumeIOError" exception which I didn't investigate, and the ALS Movie Lens benchmark failed due to missing "chmod" command. This time, the benchmark results were in CSV format, and I averaged them without the first run's score (which tended to be noticeably slower with the JIT having to warm up) and converted to ms.
>
> Scala Dotty: 8042.981 (10.39%)
> Random Forest: 4008.678 (14.53%)
> Apache Spark ALS: 34253.451 (5.52%)
> Apache Spark Bayes: 31865.199 (5.73%)
> Savina Reactors.IO: 24028.649 (24.79%)
> Apache Spark PageRank: 10485.158 (22.20%)
> Finagle HTTP Requests: 74394.711 (3.91%)
> Akka Unbalanced Cobwebbed Tree: 34890.521 (25.9%)
> Genetic Algorithm (Jenetics + Futures): 2520.791 (62.56%)
>
> Finally, the Sunflow ray-tracing benchmark.
>
> VMS score: 4470 ms (36.22%)
>
> I hope this info has been of interest, and I look forward to trying out a future OpenJDK 11 release. As I noted up top, it's not in VSI's interest to release a Java 14 or Java 17 port without first releasing Java 8 and Java 11 ports, since the newer versions of the JDK and the command-line options for the JVM simply aren't backwards compatible, and I've found that many popular Java apps have a max supported Java version.
>
> Regards,
> Jake Hamby

Hopefully VSI will notice these results and someone with some time reproduce or extend your work.

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<a0f7a7ff-b22e-40e2-8d1d-32b19582c43dn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30416&group=comp.os.vms#30416

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:6214:2b51:b0:66c:edc8:96fa with SMTP id jy17-20020a0562142b5100b0066cedc896famr1771qvb.4.1696874068124;
Mon, 09 Oct 2023 10:54:28 -0700 (PDT)
X-Received: by 2002:a05:6808:14c7:b0:3a7:b55e:a54 with SMTP id
f7-20020a05680814c700b003a7b55e0a54mr8304144oiw.1.1696874067900; Mon, 09 Oct
2023 10:54:27 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Mon, 9 Oct 2023 10:54:27 -0700 (PDT)
In-Reply-To: <54744bfd-8eba-4db9-80a6-f2a1fb45db16n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.162.60.30; posting-account=MdFUXgoAAAA4RFSe0GdwtymAGVxcBpnA
NNTP-Posting-Host: 80.162.60.30
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com> <54744bfd-8eba-4db9-80a6-f2a1fb45db16n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a0f7a7ff-b22e-40e2-8d1d-32b19582c43dn@googlegroups.com>
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
From: pustove...@gmail.com (Vitaly Pustovetov)
Injection-Date: Mon, 09 Oct 2023 17:54:28 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Vitaly Pustovetov - Mon, 9 Oct 2023 17:54 UTC

Jake, thank you so much for the testing. I need to analyze these tests and try to fix our JDK a little.

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<ug1lka$3ei5$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30418&group=comp.os.vms#30418

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: craigbe...@nospam.mac.com (Craig A. Berry)
Newsgroups: comp.os.vms
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
Date: Mon, 9 Oct 2023 14:51:38 -0500
Organization: A noiseless patient Spider
Lines: 6
Message-ID: <ug1lka$3ei5$1@dont-email.me>
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
<54744bfd-8eba-4db9-80a6-f2a1fb45db16n@googlegroups.com>
<a0f7a7ff-b22e-40e2-8d1d-32b19582c43dn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 9 Oct 2023 19:51:39 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="279f31c5c844f28620ad5313a08c4c23";
logging-data="113221"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Bof81E19nNxY85uIKgEth9nDgpYuxinM="
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0)
Gecko/20100101 Thunderbird/102.15.1
Cancel-Lock: sha1:hI28yOEoDawWwixw0G6r6Bieb6A=
In-Reply-To: <a0f7a7ff-b22e-40e2-8d1d-32b19582c43dn@googlegroups.com>
Content-Language: en-US
 by: Craig A. Berry - Mon, 9 Oct 2023 19:51 UTC

On 10/9/23 12:54 PM, Vitaly Pustovetov wrote:
> Jake, thank you so much for the testing. I need to analyze these tests and try to fix our JDK a little.

I was wondering if JIT was implicitly or explicitly turned off to see
things on VMS that much slower than on Linux.

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<ug2022$5qe2$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30425&group=comp.os.vms#30425

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
Date: Mon, 9 Oct 2023 18:49:36 -0400
Organization: A noiseless patient Spider
Lines: 166
Message-ID: <ug2022$5qe2$1@dont-email.me>
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 9 Oct 2023 22:49:38 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="40082c70c4f3234e81fd11d12c41654d";
logging-data="190914"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Ua7o6u1Ir6vcbpJr94uLieRBYK8Txftg="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:H+3ltE08B/LpdSa5Nvg7y4D/cYU=
In-Reply-To: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
Content-Language: en-US
 by: Arne Vajhøj - Mon, 9 Oct 2023 22:49 UTC

On 10/9/2023 12:34 AM, Jake Hamby (Solid State Jake) wrote:
> I'm a big fan of the Phoronix Test Suite, so I thought it would be
> educational to select the benchmarks that I know will have a good
> chance of running on VMS, then comparing to Linux. So I used PTS to
> run Java and other benchmarks first in an Ubuntu Server 22.04 VM (I'm
> running VirtualBox itself on Ubuntu 22.04 LTS and connecting remotely
> via PuTTY from Windows) with an identical VM config, then I ran them
> manually in OpenVMS.
>
> The hardware is a Lenovo ThinkStation P340 Tower with an Intel Xeon
> W-1290P CPU @ 3.7 GHz, with performance CPU governor set with
> "cpupower", all systemd timer services disabled, and using the legacy
> COM ports to log in to OpenVMS instead of sshd. The host has 64 GB
> RAM, and the VMs have 6 CPUs (the max for the community VMS license)
> and 16 GB RAM.
>
> My OpenVMS VM has two LsiLogic SCSI disks, and I should've used SCSI
> for the Ubuntu Server system disk, but I used SATA, and later made a
> second LsiLogic SCSI disk for disk benchmarks, which I'll cover in a
> later post. I used "VBoxManage modifyvm [name] --x2apic=on" and
> "VBoxManage modifyvm [name] --hpet=on" for both VMS and Linux (the
> VMS bootloader notices the presence/absence of X2APIC and I remember
> reading in a VSI doc that it benefits from HPET as well).
>
> I remember seeing a post here complaining about the VSI port of the
> JDK being "only" Java 8, but I've found that a lot of Java programs,
> including some of the benchmarks I ran, either failed on Java 17 or
> occasionally ran much slower than Java 8 (Apache Spark ALS
> specifically). I uploaded my Linux results for both Java 8 and Java
> 17 to OpenBenchmarking.org, so you can compare the results here:
>
> https://openbenchmarking.org/result/2310050-JHAM-UBUNTUV47,2310052-JHAM-UBUNTUV60

Different benchmarks can produce different results.

My favorite stupid DIY benchmarks gives:

21 - 120
17 - 116
11 - 109
8 - 96

> I'll write more about bash, coreutils, and the rest of GNV in a
> future post. Back to Java on VMS. I had to run each benchmark by
> hand, so I'll post the results in tables below, along with the ratio
> of VMS to Linux speed. Here are the quotas that I set for my user
> account (and SYSTEM), based on merging recommendations from layered
> product release notes, including Samba. I had no problems with
> running out of quota.
>
> Maxjobs: 0 Fillm: 1024 Bytlm: 3000000
> Maxacctjobs: 0 Shrfillm: 0 Pbytlm: 0 Maxdetach:
> 0 BIOlm: 32767 JTquota: 4096 Prclm: 50 DIOlm:
> 32767 WSdef: 4096 Prio: 4 ASTlm: 2048
> WSquo: 8192 Queprio: 4 TQElm: 100 WSextent:
> 16384 CPU: (none) Enqlm: 4000 Pgflquo: 10000000
>
> First up, Java SciMark 2.0, which is a numerical benchmark, so it
> should have relatively good results on VMS, and it does. VMS scores
> are the average of 3 runs, followed by the speed percentage vs.
> Linux:
>
> Composite Score: 3099.525 (99.7%)
> FFT (1024): 1907.459 (99.4%)
> SOR (100x100): 1832.324 (99.5%)
> Monte Carlo : 1238.935 (99.5%)
> Sparse matmult (N=1000, nz=5000): 2853.442 (97.3%)
> LU (100x100): 7665.467 (100.76%)
>
> So we can safely conclude that the performance of OpenJDK 1.8.0_372
> for purely CPU-bound tasks in OpenVMS x86 is nearly identical to
> Linux on the same hardware and VM params. The differences between the
> two are within the margin of error considering the variance between
> individual runs.

I would have been very surprised if the results had been different.

Linux does:

Java source--(OpenJDK javac)-->Java byte code--(OpenJDK JVM JIT for
x86-64)-->x86-64 instructions

VMS does:

Java source--(OpenJDK javac)-->Java byte code--(OpenJDK JVM JIT for
x86-64)-->x86-64 instructions

There is no need for VSI to do anything VMS specific in either javac
or JVM JIT.

So basically the CPU execute the same instructions.

Only difference will be small differences caused be
paging and scheduling.

> Next up, DaCapo benchmarks. I'll give the description for the three
> that worked on VMS. Results are times in ms (lower is better), with
> the average of 2 runs, or 3 for Eclipse, plus % ratio of Linux / VMS
> time.
>
> "H2 executes a TPC-C like benchmark written by Apache as part of the
> Apache Derby database. The application models: customers, districts,
> warehouses, purchases and deliveries.",
>
> VMS score: 27135.0 (10.13% of Linux)
>
> "jython executes (interprets) the pybench benchmark"
>
> VMS score: 22000.0 (14.92% of Linux)
>
> "Run eclipse's jdt (non-gui) performance tests"
>
> VMS score: 169355.33 (9.09% of Linux)
>
> These results are a bit more dismal. Let's see what the Renaissance
> Java benchmarks look like. In addition to having to "define/job
> JAVA$DELETE_ALL_VERSIONS TRUE" for Scala Dotty to work (otherwise it
> fails with a directory not empty error trying to delete a subdir),
> for the Apache Spark benchmarks to work,

> The in-memory database test failed with an
> "org.mapdb.DBException$VolumeIOError" exception which I didn't
> investigate, and the ALS Movie Lens benchmark failed due to missing
> "chmod" command. This time, the benchmark results were in CSV format,
> and I averaged them without the first run's score (which tended to be
> noticeably slower with the JIT having to warm up) and converted to
> ms.
>
> Scala Dotty: 8042.981 (10.39%)
> Random Forest: 4008.678 (14.53%)
> Apache Spark ALS: 34253.451 (5.52%)
> Apache Spark Bayes: 31865.199 (5.73%)
> Savina Reactors.IO: 24028.649 (24.79%)
> Apache Spark PageRank: 10485.158 (22.20%)
> Finagle HTTP Requests: 74394.711 (3.91%)
> Akka Unbalanced Cobwebbed Tree: 34890.521 (25.9%)
> Genetic Algorithm (Jenetics + Futures): 2520.791 (62.56%)
>
> Finally, the Sunflow ray-tracing benchmark.
>
> VMS score: 4470 ms (36.22%)

I assume these must include some disk file IO and network IO.

It is well known that disk file IO are slower on VMS
than on *nix. Benchmarks has consistently shown that
for 25 years.

I would also not be surprised if network IO on VMS is slower than
on *nix.

> I hope this info has been of interest, and I look forward to trying
> out a future OpenJDK 11 release. As I noted up top, it's not in VSI's
> interest to release a Java 14 or Java 17 port without first releasing
> Java 8 and Java 11 ports, since the newer versions of the JDK and the
> command-line options for the JVM simply aren't backwards compatible,
> and I've found that many popular Java apps have a max supported Java
> version.

There is no reason to go Java 14.

The LTS versions are:

8 -> 11 -> 17 -> 21

Arne

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<ug20f2$5qe2$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30426&group=comp.os.vms#30426

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
Date: Mon, 9 Oct 2023 18:56:34 -0400
Organization: A noiseless patient Spider
Lines: 22
Message-ID: <ug20f2$5qe2$2@dont-email.me>
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
<54744bfd-8eba-4db9-80a6-f2a1fb45db16n@googlegroups.com>
<a0f7a7ff-b22e-40e2-8d1d-32b19582c43dn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 9 Oct 2023 22:56:34 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="40082c70c4f3234e81fd11d12c41654d";
logging-data="190914"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19sTaBLCFJZCBQxcDaAbFchVQzw5cESFOE="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:RAYf+wgEEa3Ti9arnF4wuBG+w5k=
In-Reply-To: <a0f7a7ff-b22e-40e2-8d1d-32b19582c43dn@googlegroups.com>
Content-Language: en-US
 by: Arne Vajhøj - Mon, 9 Oct 2023 22:56 UTC

On 10/9/2023 1:54 PM, Vitaly Pustovetov wrote:
> Jake, thank you so much for the testing. I need to analyze these
> tests and try to fix our JDK a little.

You can always take a look, but the problem is not necessarily
in JDK.

For IO it is:

Java application-->Java RT (Java)-->Java RT (native)-->C
RTL-->RMS-->VMS-->disk

I have never looked at the source code, but I would assume
that the call is mostly passthrough until it hits C RTL.

If that assumption is correct, then all you can do is look
at RMS tuning options.

(well unless you want to skip C RTL and RMS and go directly
for SYS$IO_PERFORM(W), but that would be "unusual")

Arne

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<ug20uv$5qe2$3@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30427&group=comp.os.vms#30427

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
Date: Mon, 9 Oct 2023 19:05:03 -0400
Organization: A noiseless patient Spider
Lines: 12
Message-ID: <ug20uv$5qe2$3@dont-email.me>
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
<54744bfd-8eba-4db9-80a6-f2a1fb45db16n@googlegroups.com>
<a0f7a7ff-b22e-40e2-8d1d-32b19582c43dn@googlegroups.com>
<ug1lka$3ei5$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 9 Oct 2023 23:05:03 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="40082c70c4f3234e81fd11d12c41654d";
logging-data="190914"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ur1qhU4OIPXVQDOCa7XefYOMszEgDSnU="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:6ztMPnASIqYhqlumjuI5qtDCyXA=
In-Reply-To: <ug1lka$3ei5$1@dont-email.me>
Content-Language: en-US
 by: Arne Vajhøj - Mon, 9 Oct 2023 23:05 UTC

On 10/9/2023 3:51 PM, Craig A. Berry wrote:
> On 10/9/23 12:54 PM, Vitaly Pustovetov wrote:
>> Jake, thank you so much for the testing. I need to analyze these tests
>> and try to fix our JDK a little.
>
> I was wondering if JIT was implicitly or explicitly turned off to see
> things on VMS that much slower than on Linux.

The CPU bound test results were fine.

Arne

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<ug24b7$6i3v$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30428&group=comp.os.vms#30428

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
Date: Mon, 9 Oct 2023 20:02:47 -0400
Organization: A noiseless patient Spider
Lines: 152
Message-ID: <ug24b7$6i3v$1@dont-email.me>
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
<ug2022$5qe2$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 10 Oct 2023 00:02:47 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="40082c70c4f3234e81fd11d12c41654d";
logging-data="215167"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18toZQBOTOl6fN3pzYo3wrmtkfbHuR0QVo="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:Aa1S9jjZNmN102OoSKWiVYpXkZk=
Content-Language: en-US
In-Reply-To: <ug2022$5qe2$1@dont-email.me>
 by: Arne Vajhøj - Tue, 10 Oct 2023 00:02 UTC

On 10/9/2023 6:49 PM, Arne Vajhøj wrote:
> On 10/9/2023 12:34 AM, Jake Hamby (Solid State Jake) wrote:
>> First up, Java SciMark 2.0, which is a numerical benchmark, so it
>> should have relatively good results on VMS, and it does. VMS scores
>> are the average of 3 runs, followed by the speed percentage vs.
>> Linux:
>>
>> Composite Score: 3099.525 (99.7%)
>> FFT (1024): 1907.459 (99.4%)
>> SOR (100x100):  1832.324 (99.5%)
>> Monte Carlo : 1238.935 (99.5%)
>> Sparse matmult (N=1000, nz=5000): 2853.442 (97.3%)
>> LU (100x100): 7665.467 (100.76%)
>>
>> So we can safely conclude that the performance of OpenJDK 1.8.0_372
>> for purely CPU-bound tasks in OpenVMS x86 is nearly identical to
>> Linux on the same hardware and VM params. The differences between the
>> two are within the margin of error considering the variance between
>> individual runs.
>
> I would have been very surprised if the results had been different.
>
> Linux does:
>
> Java source--(OpenJDK javac)-->Java byte code--(OpenJDK JVM JIT for
> x86-64)-->x86-64 instructions
>
> VMS does:
>
> Java source--(OpenJDK javac)-->Java byte code--(OpenJDK JVM JIT for
> x86-64)-->x86-64 instructions
>
> There is no need for VSI to do anything VMS specific in either javac
> or JVM JIT.
>
> So basically the CPU execute the same instructions.
>
> Only difference will be small differences caused be
> paging and scheduling.

My stupid DIY benchmark produces similar result:

VMS 9 Windows 10 Ubuntu 22 Windows 10
Java 8 Java 8 Java 17 Java 17
int MOPS 655 660 782 774
fp MOPS 239 242 245 245
str MOPS 12.2 11.8 18.7 19.5

Same Java version produces same result no matter the platform.

It is really a micro-benchmark - some may call it a
nano-benchmark - and the result is manual picked and rounded
from 10 runs, so not a particular good test.
But the code is attached below, so everybody can run
it themselves.

Arne

****

import java.text.NumberFormat;
import java.text.DecimalFormat;

public class JvmTest {
private static NumberFormat nf = new DecimalFormat("0.0000");
private static void printres(long t1, long t2, int n1, int n2,
String ops) {
double xperf = (double)n1 * (double)n2 / ((t2 - t1) / 1000.0) ;
String sperf = nf.format(xperf / 1000000);
System.out.println(sperf + " million " + ops + " per second");
}
private final static int NINT = 10000;
private final static int NFP = 1000;
private final static int NSTR = 1000;
private final static int N = 1000000;
public static void testint(int scale) {
int nintscale = NINT / scale;
long t1 = System.currentTimeMillis();
for(int i = 0; i < nintscale; i++) {
int sum = i;
for(int j = 0; j < N; j++) {
sum = ((sum + 1) * 2 + 1) / 2;
}
if(sum != (i + N)) {
System.out.println("Integer test error");
System.exit(1);
}
}
long t2 = System.currentTimeMillis();
printres(t1, t2, nintscale, N, "integer operations");
}
public static void testfp(int scale) {
int nfpscale = NFP / scale;
long t1 = System.currentTimeMillis();
for(int i = 0; i < nfpscale; i++) {
double sum = i;
for(int j = 0; j < N; j++) {
sum = ((sum + 1) * 2 + 1) / 2;
}
if(Math.abs(sum - (i + 1.5 * N)) > 1) {
System.out.println("Floating point test error");
System.exit(1);
}
}
long t2 = System.currentTimeMillis();
printres(t1, t2, nfpscale, N, "floating point operations");
}
private final static String ALFA = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private final static int VMS_FACTOR = 100;
public static void teststr(int scale) {
int nstrscale = NSTR / scale;
long t1 = System.currentTimeMillis();
for(int i = 0; i < nstrscale * VMS_FACTOR; i++) {
StringBuffer sb = new StringBuffer("");
for(int j = 0; j < N / VMS_FACTOR; j = j + 10) {
String s = ALFA + ALFA;
int ix = (i + j) % ALFA.length();
sb.append(s.substring(ix, ix + 1) + s.substring(ix + 1,
ix + 3) + s.substring(ix + 3, ix + 6) + s.substring(ix + 6, ix + 10));
}
int ix1 = (N / VMS_FACTOR) / 3;
int ix2 = 2 * (N / VMS_FACTOR) / 3;
if(sb.length() != (N / VMS_FACTOR) || sb.charAt(ix1) !=
ALFA.charAt((i + ix1) % ALFA.length()) || sb.charAt(ix2) !=
ALFA.charAt((i + ix2) % ALFA.length())) {
System.out.println("String test error");
System.exit(1);
}
}
long t2 = System.currentTimeMillis();
printres(t1, t2, nstrscale, N / 10, "string operations");
}
private final static int REP = 10;
public static void main(String[] args) {
System.out.println("Java:");
int scale = 1;
if(args.length > 0) {
scale = Integer.parseInt(args[0]);
}
for(int i = 0; i < REP; i++) {
testint(scale);
}
for(int i = 0; i < REP; i++) {
testfp(scale);
}
for(int i = 0; i < REP; i++) {
teststr(scale);
}
}
}

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<ug25rd$6s2s$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30429&group=comp.os.vms#30429

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
Date: Mon, 9 Oct 2023 20:28:29 -0400
Organization: A noiseless patient Spider
Lines: 166
Message-ID: <ug25rd$6s2s$1@dont-email.me>
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
<ug2022$5qe2$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 10 Oct 2023 00:28:29 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="40082c70c4f3234e81fd11d12c41654d";
logging-data="225372"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/uI++q4j+zkqB+U4flbtjQDtAdKrHuJRI="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:Q7cmHd1xNJEqirjFBozkA3LHOzw=
In-Reply-To: <ug2022$5qe2$1@dont-email.me>
Content-Language: en-US
 by: Arne Vajhøj - Tue, 10 Oct 2023 00:28 UTC

On 10/9/2023 6:49 PM, Arne Vajhøj wrote:
> On 10/9/2023 12:34 AM, Jake Hamby (Solid State Jake) wrote:
>> Next up, DaCapo benchmarks. I'll give the description for the three
>> that worked on VMS. Results are times in ms (lower is better), with
>> the average of 2 runs, or 3 for Eclipse, plus % ratio of Linux / VMS
>> time.
>>
>> "H2 executes a TPC-C like benchmark written by Apache as part of the
>> Apache Derby database. The application models: customers, districts,
>> warehouses, purchases and deliveries.",
>>
>> VMS score: 27135.0 (10.13% of Linux)
>>
>> "jython executes (interprets) the pybench benchmark"
>>
>> VMS score: 22000.0 (14.92% of Linux)
>>
>> "Run eclipse's jdt (non-gui) performance tests"
>>
>> VMS score: 169355.33 (9.09% of Linux)
>>
>> These results are a bit more dismal. Let's see what the Renaissance
>> Java benchmarks look like. In addition to having to "define/job
>> JAVA$DELETE_ALL_VERSIONS TRUE" for Scala Dotty to work (otherwise it
>> fails with a directory not empty error trying to delete a subdir),
>> for the Apache Spark benchmarks to work,
>
>> The in-memory database test failed with an
>> "org.mapdb.DBException$VolumeIOError" exception which I didn't
>> investigate, and the ALS Movie Lens benchmark failed due to missing
>> "chmod" command. This time, the benchmark results were in CSV format,
>> and I averaged them without the first run's score (which tended to be
>> noticeably slower with the JIT having to warm up) and converted to
>> ms.
>>
>> Scala Dotty: 8042.981 (10.39%)
>> Random Forest: 4008.678 (14.53%)
>> Apache Spark ALS: 34253.451 (5.52%)
>> Apache Spark Bayes: 31865.199 (5.73%)
>> Savina Reactors.IO: 24028.649 (24.79%)
>> Apache Spark PageRank: 10485.158 (22.20%)
>> Finagle HTTP Requests: 74394.711 (3.91%)
>> Akka Unbalanced Cobwebbed Tree: 34890.521 (25.9%)
>> Genetic Algorithm (Jenetics + Futures): 2520.791 (62.56%)
>>
>> Finally, the Sunflow ray-tracing benchmark.
>>
>> VMS score: 4470 ms (36.22%)
>
> I assume these must include some disk file IO and network IO.
>
> It is well known that disk file IO are slower on VMS
> than on *nix. Benchmarks has consistently shown that
> for 25 years.
>
> I would also not be surprised if network IO on VMS is slower than
> on *nix.

I also had some code testing disk file IO. A silly line
counting program. Code again attached below.

VMS 9 Windows 10 Ubuntu 22 Windows 10
Java 8 Java 8 Java 17 Java 17
read lines 4.6s 3.3s 3.2s 3.3s
map file 1.0s 0.5s 0.3s 0.5s

VMS is significant slower.

But actually less than what I expected.

Arne

****

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Gen {
private static final int SIZE = 1000000000;
public static void main(String[] args) throws IOException {
System.out.printf("%s %s / %s %s\n",
System.getProperty("java.vendor"), System.getProperty("java.version"),
System.getProperty("os.name"), System.getProperty("os.version"));
long t1 = System.currentTimeMillis();
try(PrintWriter pw = new PrintWriter(new FileWriter(args[0]))) {
for(int i = 0; i < SIZE / 10; i++) {
for(int j = 0; j < 10 -
System.getProperty("line.separator").length(); j++) {
pw.print(Integer.toString(i % 10));
}
pw.println();
}
}
long t2 = System.currentTimeMillis();
System.out.printf("Gen : %d ms\n", t2 - t1);
}
}

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Read2 {
private static void test(String fnm) throws IOException {
long t1 = System.currentTimeMillis();
try(BufferedReader br = new BufferedReader(new FileReader(fnm))) {
int n = 0;
@SuppressWarnings("unused")
String line;
while((line = br.readLine()) != null) {
n++;
}
System.out.printf("%d lines\n", n);
}
long t2 = System.currentTimeMillis();
System.out.printf("Read one line at a time : %d ms\n", t2 - t1);
}
public static void main(String[] args) throws IOException {
System.out.printf("%s %s / %s %s\n",
System.getProperty("java.vendor"), System.getProperty("java.version"),
System.getProperty("os.name"), System.getProperty("os.version"));
for(int i = 0; i < 10; i++) {
test(args[0]);
}
}
}

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
import java.nio.file.Paths;

public class Read3 {
private static final int OFFSET = 0;
private static final int SIZE = 1000000000;
private static void test(String fnm) throws IOException {
long t1 = System.currentTimeMillis();
try(FileChannel fc = FileChannel.open(Paths.get(fnm))) {
ByteBuffer bb = fc.map(MapMode.READ_ONLY, OFFSET, SIZE);
bb.rewind();
int n = 0;
for(int ix = 0; ix < SIZE; ix++) {
byte b = bb.get(ix);
if(b == '\n') {
n++;
}
}
System.out.printf("%d lines\n", n);
}
long t2 = System.currentTimeMillis();
System.out.printf("Map file to memory : %d ms\n", t2 - t1);
}
public static void main(String[] args) throws IOException {
System.out.printf("%s %s / %s %s\n",
System.getProperty("java.vendor"), System.getProperty("java.version"),
System.getProperty("os.name"), System.getProperty("os.version"));
for(int i = 0; i < 10; i++) {
test(args[0]);
}
}
}

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<ug26vg$6tea$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30432&group=comp.os.vms#30432

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
Date: Mon, 9 Oct 2023 20:47:43 -0400
Organization: A noiseless patient Spider
Lines: 29
Message-ID: <ug26vg$6tea$2@dont-email.me>
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
<ug2022$5qe2$1@dont-email.me> <ug25rd$6s2s$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 10 Oct 2023 00:47:44 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="40082c70c4f3234e81fd11d12c41654d";
logging-data="226762"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+d5oygJxI7WsUvFdOGFWG+dikOWZgKm7s="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:P9pe//2fOsUPs50KRyUjqMYpwQw=
In-Reply-To: <ug25rd$6s2s$1@dont-email.me>
Content-Language: en-US
 by: Arne Vajhøj - Tue, 10 Oct 2023 00:47 UTC

On 10/9/2023 8:28 PM, Arne Vajhøj wrote:
> On 10/9/2023 6:49 PM, Arne Vajhøj wrote:
>> It is well known that disk file IO are slower on VMS
>> than on *nix. Benchmarks has consistently shown that
>> for 25 years.
>>
>> I would also not be surprised if network IO on VMS is slower than
>> on *nix.
>
> I also had some code testing disk file IO. A silly line
> counting program. Code again attached below.
>
>
>              VMS 9     Windows 10   Ubuntu 22   Windows 10
>              Java 8    Java 8       Java 17     Java 17
> read lines    4.6s       3.3s         3.2s        3.3s
> map file      1.0s       0.5s         0.3s        0.5s
>
> VMS is significant slower.
>
> But actually less than what I expected.

Oh and Read3 crashes pretty hard after 3 rounds.

Which someone should probably look at.

Arne

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<4ccfdda5-1de2-4cd8-bbc7-55c631235c06n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30438&group=comp.os.vms#30438

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:6214:3388:b0:65b:c47:10dc with SMTP id mv8-20020a056214338800b0065b0c4710dcmr214973qvb.3.1696917337021;
Mon, 09 Oct 2023 22:55:37 -0700 (PDT)
X-Received: by 2002:a9d:6394:0:b0:6ba:8e4a:8e62 with SMTP id
w20-20020a9d6394000000b006ba8e4a8e62mr5103684otk.7.1696917336866; Mon, 09 Oct
2023 22:55:36 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!border-2.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Mon, 9 Oct 2023 22:55:36 -0700 (PDT)
In-Reply-To: <ug26vg$6tea$2@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=80.63.7.124; posting-account=MdFUXgoAAAA4RFSe0GdwtymAGVxcBpnA
NNTP-Posting-Host: 80.63.7.124
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
<ug2022$5qe2$1@dont-email.me> <ug25rd$6s2s$1@dont-email.me> <ug26vg$6tea$2@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4ccfdda5-1de2-4cd8-bbc7-55c631235c06n@googlegroups.com>
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
From: pustove...@gmail.com (Vitaly Pustovetov)
Injection-Date: Tue, 10 Oct 2023 05:55:37 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
Lines: 3
 by: Vitaly Pustovetov - Tue, 10 Oct 2023 05:55 UTC

вторник, 10 октября 2023 г. в 02:47:48 UTC+2, Arne Vajhøj:
> Oh and Read3 crashes pretty hard after 3 rounds.
Yes :( I've created a ticket to fix the issue.

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<b7087f40-ab9f-4a38-a798-b122aa5f0dd8n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30444&group=comp.os.vms#30444

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:8595:b0:774:15b1:7828 with SMTP id pf21-20020a05620a859500b0077415b17828mr241860qkn.7.1696960721656;
Tue, 10 Oct 2023 10:58:41 -0700 (PDT)
X-Received: by 2002:a05:6870:9e42:b0:1e9:73d6:5cd8 with SMTP id
pt2-20020a0568709e4200b001e973d65cd8mr626927oab.1.1696960721453; Tue, 10 Oct
2023 10:58:41 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!border-2.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Tue, 10 Oct 2023 10:58:40 -0700 (PDT)
In-Reply-To: <4ccfdda5-1de2-4cd8-bbc7-55c631235c06n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:46b0:abc0:31aa:2f79:3e99:1405;
posting-account=OGFVHQoAAAASiNAamRQec8BtkuXxYFnQ
NNTP-Posting-Host: 2600:1700:46b0:abc0:31aa:2f79:3e99:1405
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
<ug2022$5qe2$1@dont-email.me> <ug25rd$6s2s$1@dont-email.me>
<ug26vg$6tea$2@dont-email.me> <4ccfdda5-1de2-4cd8-bbc7-55c631235c06n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b7087f40-ab9f-4a38-a798-b122aa5f0dd8n@googlegroups.com>
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
From: jake.ha...@gmail.com (Jake Hamby (Solid State Jake))
Injection-Date: Tue, 10 Oct 2023 17:58:41 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 11
 by: Jake Hamby (Solid St - Tue, 10 Oct 2023 17:58 UTC

On Monday, October 9, 2023 at 10:55:38 PM UTC-7, Vitaly Pustovetov wrote:
> вторник, 10 октября 2023 г. в 02:47:48 UTC+2, Arne Vajhøj:
> > Oh and Read3 crashes pretty hard after 3 rounds.
> Yes :( I've created a ticket to fix the issue.

I'm going to start a new thread with my results for OpenSSH, C++ microbenchmarks, Perl, PHP, and PostMark.

Jake

Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks

<75318d57-ad4d-48a0-9384-b344fa6c593bn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30850&group=comp.os.vms#30850

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:3b02:b0:774:224e:23f0 with SMTP id tl2-20020a05620a3b0200b00774224e23f0mr23333qkn.9.1698392290207;
Fri, 27 Oct 2023 00:38:10 -0700 (PDT)
X-Received: by 2002:a05:6808:4191:b0:3ac:a02d:708f with SMTP id
dj17-20020a056808419100b003aca02d708fmr450046oib.1.1698392289948; Fri, 27 Oct
2023 00:38:09 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Fri, 27 Oct 2023 00:38:09 -0700 (PDT)
In-Reply-To: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.162.60.30; posting-account=MdFUXgoAAAA4RFSe0GdwtymAGVxcBpnA
NNTP-Posting-Host: 80.162.60.30
References: <aa2047c1-8664-48d7-89a5-e29ae287053cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <75318d57-ad4d-48a0-9384-b344fa6c593bn@googlegroups.com>
Subject: Re: Linux vs VMS x86 Performance Part 1: Java 8 benchmarks
From: pustove...@gmail.com (Vitaly Pustovetov)
Injection-Date: Fri, 27 Oct 2023 07:38:10 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Vitaly Pustovetov - Fri, 27 Oct 2023 07:38 UTC

понедельник, 9 октября 2023 г. в 06:34:22 UTC+2, Jake Hamby (Solid State Jake):
.....
> I also had to add "-Dspark.file.transferTo=false" to the Java line or else I get this exception:
>
> 23/10/07 19:16:10 ERROR Executor: Exception in task 5.0 in stage 1.0 (TID 6)
> java.lang.AssertionError: assertion failed:
> Current position 0 do not equal to expected position 27650
> after transferTo, please check your kernel version to see if it is 2.6.32,
> this is a kernel bug which will lead to unexpected behavior when using transferTo.
> You can set spark.file.transferTo = false to disable this NIO feature.
>
> at scala.Predef$.assert(Predef.scala:279)
> at org.apache.spark.util.Utils$.$anonfun$copyFileStreamNIO$2(Utils.scala
> :459)
> at org.apache.spark.util.Utils$.$anonfun$copyFileStreamNIO$2$adapted(Uti
> ls.scala:450)
> at scala.Option.foreach(Option.scala:437)
> at org.apache.spark.util.Utils$.copyFileStreamNIO(Utils.scala:450)
> at org.apache.spark.util.Utils.copyFileStreamNIO(Utils.scala)
> at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.writeParti
> tionedDataWithChannel(BypassMergeSortShuffleWriter.java:246)

I hope I've fixed the bug. After fix
$ java -jar DISK$WORK:[000000.xxxxxxx]renaissance-gpl-0^.14^.2.jar dec-tree
.....
====== dec-tree (apache-spark) [default], iteration 0 started =====GC before operation: completed in 739.993 ms, heap usage 129.732 MB -> 28.748 MB.
====== dec-tree (apache-spark) [default], iteration 0 completed (91859.081 ms) =========== dec-tree (apache-spark) [default], iteration 1 started =====GC before operation: completed in 1639.984 ms, heap usage 74.755 MB -> 53.232 MB.
====== dec-tree (apache-spark) [default], iteration 1 completed (14959.850 ms) =========== dec-tree (apache-spark) [default], iteration 2 started =====GC before operation: completed in 1409.986 ms, heap usage 209.433 MB -> 53.864 MB.
====== dec-tree (apache-spark) [default], iteration 2 completed (12819.872 ms) =====

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor