Page tree
Skip to end of metadata
Go to start of metadata

Performance


Collatz Performance by Machine

Using a c

Machinespeed
1 core
sec
Java 17
speed
n cores
CPU
arch
CPUCoresMhz
base
Mhz
peak
thermal
throttle
RAMDockerHub
max cores
MacMini 2020
M1


ARMM14/4/8




Biometric4
X-99a 
61.011.9
5820K
384/1.5/15g
6/123.9Ghz
no
hyperv
11/12
Biometric2
X-99a 2200Mhz ram
63.611.5
9.2


6/12




Biometric3
X-99a 2333Mhz ram
66.911.7







Lenovo X1C G974.415.0







Lenovo P17 G161.017.1







Lenovo P5289.717.6








Performance/Cost Ratios by Machine

Cost/Compute

Proc

swift
sec

$sec/Cycle
all cores 

$sec/Cycle
1 core 

CPU

Mhz

cores

threads

RAM

System
cost 

Speed
all cores 

Java 8

Speed
1 core 

Java 8

Java 11Java 11
MacMini 2012 i7 3610
37.2115

48
$1.2k31.0138.5

i74700MQ
39.4121

48
$1k39.4121.0

i5 4310

43.8

94

24
$.9k48.7104.2

i7-5820k 4.6G
47.2320
4662612
$4k11.880.0

compute stick

49.0

115

14
$0.22k222.9521.2

Asus 3610m

49.4

206
260048
$1.532.9137.1

nuc i7-5557
51.2110

24
$1k51.2109.8

nuc i5-5250
54.5111

24
$0.8k68.1139.1

XPS 8300
54.9169
270048
$1.5k36.6112.9

i7-5820k 3.3G
64.8370
3300612
$4k16.292.4

Macbook Pro 2013

108

415i7 4960H260048
$4k27.1103.8

p4-3Ghz

119

178
300012
$0.5k238.7356.8

Raspberry PI i1b
387335
700110.5$0.08k48344185



to be ranked
























Raspberry PI 3A






1




Raspberry PI 4B






4




Thinkpad P52






64




Macbook Pro 2019 15 inch




81632


2050
Macbook Pro 2019 16 inch




81664


1755
iphone 13 pro10.25











Threaded CPU Saturation Benchmark




The following is a java program that computes a section of the Collatz (Hailstone numbers) sequence as a set of Unit Of Work items processed by the Java 7 Fork Join Framework (deprecated by parallel streams in Lambda in Java 8).   The software will run a sequence of ever smaller partitioned job sizes against a set of threads on all your cores (hyperthreaded) - best result are usually with 2 x the number of vCores with 64k jobs to keep the queue full.

Running CPU Saturation across an entire Kubernetes Cluster using a DaemonSet


org.obrienscience.collatz.server.ForkJoinCollatzServer.jar

96 thread - 48 core machine = 2 >> 6 + 1 = 7  

sudo apt-get update
sudo apt install default-jre
java -version
java -cp org.obrienscience.collatz.server.ForkJoinCollatzServer.jar org.obrienscience.collatz.server.ForkJoinCollatzServer 7 7 1
ForkJoinCollatzServer forkJoinPool-power-start end runs (v 20161009)
availableProc	: 96
fjps threads	: 7,7
freeMemory()	: 2150946816
maxMemory()	: 32178700288
totalMemory()	: 2155872256

Not what I am expecting - more than 50% saturation5295,7,22,522,8
4233,7,21,421,16
4247,7,20,420,32
4265,7,19,419,64
4256,7,18,418,128
4269,7,17,417,256
4294,7,16,416,512
4295,7,15,415,1024
4291,7,14,414,2048
4317,7,13,413,4096
4320,7,12,412,8192
4340,7,11,411,16384
4365,7,10,410,32768
4363,7,9,49,65536
4418,7,8,48,131072
4567,7,7,47,262144
4558,7,6,46,524288
4581,7,5,45,1048576
6416,7,4,64,2097152
12492,7,3,123,4194304
24453,7,2,242,8388608
48186,7,1,481,16777216
91659,7,0,910,33554432

6 6
top - 02:58:46 up  7:11,  2 users,  load average: 24.91, 13.63, 8.02
Tasks: 760 total,   1 running, 341 sleeping,   0 stopped,   0 zombie
%Cpu(s):  51.7/0.5    52[||||||||||||||||||||||||||||||||||||||||||||||||||||                                                ]
KiB Mem :  6.1/19579027+[                                                                                                    ]
KiB Swap:  0.0/0        [                                                                                                    ]

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                          
34531 ubuntu    20   0 53.976g 9.284g  26.2m S  5003  5.0  15:43.79 java     


Execution

java -cp org.obrienscience.collatz.server.ForkJoinCollatzServer.jar org.obrienscience.collatz.server.ForkJoinCollatzServer 5 6 1

Java 11 support

see Java Developers Guide#Java11LTS

I am seeing a 10 to 0% performance speed up for saturated ForkJoinPool tests under Java 11 than in Java 8 only on a i9-9980 15 inch 2019 Macbook pro undergoing thermal throttling - otherwise we have a 30 to 15% positive speedup running even JDK 8 optimized bytecode



MachineTimerankCPUMhzBusMulRamCoresvCoresThreads
Java 8Java 11Increase 8-11

4.2 GHz x99-a DDR4

5820K410012533646121


40









6122


41









6124


40









6128


21









61216












6121024


13

Macbook Pro 2019 15 inch

9980


32816





Macbook Pro 2019 16 inch

9980


64816





Thinkpad P52





64







Thinkpad P17 Gen 1

Xeon
W-10855M
2.80 base
3.9(6 cores)
4.8(reality)
5.1(1 core)
10051128612




Checking the new constructor https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#%3Cinit%3E(int,java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory,java.lang.Thread.UncaughtExceptionHandler,boolean,int,int,int,java.util.function.Predicate,long,java.util.concurrent.TimeUnit)


Notes

For JDK 11.0.5 LTS - forgot I did some triage 20 months ago on 9 and ran into the tomcat and jaxb issue in our docker containers right away (didnt run tomcat 9 at the time) - even back with JDK9 https://jira.onap.org/browse/LOG-126 - anyway I have been transitioning my personal projects to 11 and I also see up to 40% speed up on saturated parallelStream operations from 1 to 16 cores so we can be ready for the switch over the next year



Kubernetes DaemonSet

What is the point of this application in terms of this daemonset deployment?  To test saturation of a distributed RKE kubernetes cluster - across 5 nodes of 256G of ram and around 60 vCores.

see Kubernetes Cluster across VMware nodes on OSX or Windows#Experiment:RunafullsaturationDaemonSetkubernetesdeploymentacrossallnodesinthecluster

Full Kubernetes Cluster CPU Saturation

Running the collatz fork join framework on Java 11 containers deployed on Kubernetes

Kubernetes Cluster across VMware nodes on OSX or Windows#Experiment:RunafullsaturationDaemonSetkubernetesdeploymentacrossallnodesinthecluster

Source

https://github.com/obrienlabs/benchmark/issues/4

DockerFile

#FROM anapsix/alpine-java:jre8
FROM openjdk:11
ARG USERVICE_HOME=/opt/app/
# Build up the deployment folder structure
RUN mkdir -p $USERVICE_HOME
ADD org.obrienscience.collatz.server.ForkJoinCollatzServer*.jar $USERVICE_HOME/lib/org.obrienscience.collatz.server.ForkJoinCollatzServer.jar
ADD startService.sh $USERVICE_HOME/bin/
CMD ["/opt/app/bin/startService.sh"]

build.sh

BUILD_ID=10001
BUILD_DIR=builds
mkdir ../../$BUILD_DIR
TARGET_DIR=../../$BUILD_DIR/$BUILD_ID
mkdir $TARGET_DIR
CONTAINER_IMAGE=collatz-se
cp ../../target/*.jar $TARGET_DIR
cp DockerFile $TARGET_DIR
cp startService.sh $TARGET_DIR
cd $TARGET_DIR
docker build --no-cache --build-arg build-id=$BUILD_ID -t obrienlabs/$CONTAINER_IMAGE -f DockerFile .
#docker tag $CONTAINER_IMAGE:latest $CONTAINER_IMAGE:latest
docker tag obrienlabs/$CONTAINER_IMAGE obrienlabs/$CONTAINER_IMAGE:0.0.1
# dockerhub
docker push obrienlabs/$CONTAINER_IMAGE:0.0.1
# locally
docker stop $CONTAINER_IMAGE
docker rm $CONTAINER_IMAGE
echo "starting: $CONTAINER_IMAGE"
docker run --name $CONTAINER_IMAGE \
    -d -p 8888:8080 \
    -e os.environment.configuration.dir=/ \
    -e os.environment.ecosystem=sbx \
    obrienlabs/$CONTAINER_IMAGE:0.0.1
cd ../../src/docker

startService.sh

#!/bin/bash
cd /opt/app
java  -cp /opt/app/lib/org.obrienscience.collatz.server.ForkJoinCollatzServer.jar org.obrienscience.collatz.server.ForkJoinCollatzServer 5 6 1

Create a Kubernetes Namespace

apiVersion: v1
kind: Namespace
metadata:
  name: dev
  labels:
    name: dev

kubectl create -f namespace-dev.yaml
kubectl get namespaces
NAME              STATUS   AGE
dev               Active   5s


daemonset.yaml



daemonset.yaml

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: collatz
  namespace: dev
  labels:
    k8s-app: collatz
spec:
  selector:
    matchLabels:
      name: collatz
  template:
    metadata:
      labels:
        name: collatz
    spec:
      tolerations:
      # this toleration is to have the daemonset runnable on master nodes
      # remove it if your masters can't run pods
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:
      - name: collatz
        image: obrienlabs/collatz-se:0.0.1
        resources:
          limits:
            memory: 1000Mi
          requests:
            cpu: 1000m
            memory: 1000Mi
      terminationGracePeriodSeconds: 30

Deployment steps - prior to automation

biometric:docker $ kubectl apply -f daemonset.yaml 
daemonset.apps/collatz created
biometric:docker $ kubectl get pods --all-namespaces
NAMESPACE     NAME                                     READY   STATUS    RESTARTS   AGE
default       collatz-fl54r                            0/1     Pending   0          2s

biometric:docker $ kubectl get events
LAST SEEN   TYPE      REASON                    OBJECT                MESSAGE
75s         Warning   FailedScheduling          pod/collatz-fl54r     0/1 nodes are available: 1 Insufficient cpu, 1 Insufficient memory.
75s         Normal    SuccessfulCreate          daemonset/collatz     Created pod: collatz-fl54r/
reduce from 4g
resources:
limits:
memory: 1000Mi
requests:
cpu: 1000m
memory: 1000Mibiometric:docker $ kubectl delete -f daemonset.yaml 
daemonset.apps "collatz" deleted
biometric:docker $ kubectl apply -f daemonset.yaml 
daemonset.apps/collatz created
biometric:docker $ kubectl get pods --all-namespaces | grep collatz
default collatz-d9wzh 0/1 ErrImagePull 0 8s

i didn't push a latest image tag yet
image: obrienlabs/collatz-se:0.0.1
biometric:docker kubectl get pods --all-namespaces | grep collatz
default collatz-b6bt9 1/1 Running 0 3s

create a service
apiVersion: v1
kind: Service
metadata:
  name: backend-stub
spec:
  selector:
    app: backend-stub
  ports:
    - protocol: TCP
      port: 8888
      targetPort: 38888

biometric:charts michaelobrien$ kubectl apply -f kubernetes/backend-stub/service.yaml 
service/backend-stub created
biometric:charts michaelobrien$ kubectl get services --all-namespaces | grep stub
default backend-stub ClusterIP 10.102.247.55 <none> 8888/TCP 9s

Increasing kubernetes resource limits to the max vCores per host

biometric:docker $ kubectl logs -f collatz-b6bt9
availableProc : 2
fjps threads : 5,6
freeMemory() : 15397536
maxMemory() : 253427712
try for more ram/cpu - comment out resources: block

biometric:docker $ kubectl get pods --all-namespaces | grep collatz
default collatz-b6bt9 0/1 Terminating 0 7m52s
biometric:docker $ kubectl get pods --all-namespaces | grep collatz
biometric:docker $ 

1 core
biometric:docker $ kubectl logs -f collatz-fx6tf
availableProc	: 1
fjps threads	: 5,6
freeMemory()	: 31192144
maxMemory()	: 504823808
totalMemory()	: 32440320

          limits:
            cpu: "3"
          requests:
            cpu: "1"

still tops at 2

          limits:
            cpu: "3"
          requests:
            cpu: "3"

15s         Warning   FailedScheduling          pod/collatz-47z49     0/1 nodes are available: 1 Insufficient cpu.forgot 
- was my Docker Desktop resource limits 2 cores and 2g 
- upped to 14 cores and 10gset to 8 cores

resources:
  limits:
    cpu: "8"
   requests:
    cpu: "1"

better - we see 8 now
PID COMMAND %CPU TIME #TH #WQ #PORTS MEM PURG CMPRS PGRP PPID STATE BOOSTS %CPU_ME %CPU_OTHRS UID FAULTS COW MSGSENT MSGRECV SYSBSD SYSMACH CSW PAGEINS IDLEW POWER
38233 com.docker.h 832.0 22:43.06 26 0 51 10G+ 0B 0B 38221 38225 sleeping *0[1]availableProc : 8
fjps threads : 5,6
freeMemory() : 147343816
maxMemory() : 2350907392
totalMemory() : 148897792


on a cluster
kubectl get pods --all-namespaces -o wide| grep collatz
default         collatz-5zdm7                             1/1     Running     0          2m46s   10.42.1.3       192.168.0.101   <none>           <none>
default         collatz-gk8ps                             1/1     Running     0          2m46s   10.42.2.5       192.168.0.59    <none>           <none>
default         collatz-wqggl                             1/1     Running     0          2m46s   10.42.0.5       192.168.0.114   <none>           <none>

kubectl top nodes
NAME            CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
192.168.0.101   10407m       86%    5577Mi          10%       
192.168.0.114   9993m        83%    5934Mi          11%       
192.168.0.59    11439m       81%    5220Mi          32% 
kubectl logs -f collatz-b78qv
fjps threads : 5,6
freeMemory() : 855638016
maxMemory() : 13715374080
totalMemory() : 857735168

Parallel Computation on Apple M1max GPU

https://developer.apple.com/forums/tags/accelerate

  • No labels

4 Comments

  1. JDK 11.0.4 on OSX 10.14.6 on i9-9980 Macbook Pro 2019 - single threaded performance up

    obrienlabs:_exp michaelobrien$ java -cp .:org.obrienscience.collatz.server.ForkJoinCollatzServer.jar org.obrienscience.collatz.server.ForkJoinCollatzServer 4 6 1

    ForkJoinCollatzServer forkJoinPool-power-start end runs (v 20161009)

    availableProc : 16

    fjps threads : 4,6

    freeMemory() : 534856392

    maxMemory() : 8589934592

    totalMemory() : 536870912

    System.getEnv() : {PATH=/Users/michaelobrien/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/Users/michaelobrien/opt/mvn361/bin, JAVA_ARCH=x86_64, SHELL=/bin/bash, TERM_PROGRAM=Apple_Terminal, SECURITYSESSIONID=186aa, OLDPWD=/Users/michaelobrien, TERM=xterm-256color, USER=michaelobrien, LANG=en_CA.UTF-8, TMPDIR=/var/folders/6x/ptprp3dd29zf6r81p3kldf_c0000gn/T/, SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.fa1Uwv79Fv/Listeners, XPC_FLAGS=0x0, TERM_SESSION_ID=E193033C-A61F-473A-A2EE-8DE9E187D245, JAVA_MAIN_CLASS_24636=org.obrienscience.collatz.server.ForkJoinCollatzServer, __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x52, Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.5iPlxCr2GX/Render, com.apple.java.jvmTask=CommandLine, LOGNAME=michaelobrien, XPC_SERVICE_NAME=0, PWD=/Users/michaelobrien/_exp, TERM_PROGRAM_VERSION=421.2, HOME=/Users/michaelobrien, SHLVL=1, _=/usr/bin/java}

    Range: bits : 25

    21833,4,22,2122,8

    21143,4,21,2121,16

    20860,4,20,2020,32

    20927,4,19,2019,64

    20979,4,18,2018,128

    20969,4,17,2017,256

    20892,4,16,2016,512

    20876,4,15,2015,1024

    20876,4,14,2014,2048

    20895,4,13,2013,4096

    20936,4,12,2012,8192

    20969,4,11,2011,16384

    20957,4,10,2010,32768

    21021,4,9,219,65536

    20980,4,8,208,131072

    20903,4,7,207,262144

    21048,4,6,216,524288

    21700,4,5,215,1048576

    20789,4,4,204,2097152

    20209,4,3,203,4194304

    19723,4,2,192,8388608

    28797,4,1,281,16777216

    48086,4,0,480,33554432

    20597,5,22,2022,8

    20813,5,21,2021,16

    20884,5,20,2020,32

    20959,5,19,2019,64

    20886,5,18,2018,128

    20881,5,17,2017,256

    20854,5,16,2016,512

    20889,5,15,2015,1024

    20894,5,14,2014,2048

    20898,5,13,2013,4096

    20886,5,12,2012,8192

    20917,5,11,2011,16384

    20870,5,10,2010,32768

    20902,5,9,209,65536

    20954,5,8,208,131072

    20867,5,7,207,262144

    21350,5,6,216,524288

    20954,5,5,205,1048576

    20841,5,4,204,2097152

    20256,5,3,203,4194304

    19885,5,2,192,8388608

    28860,5,1,281,16777216

    48076,5,0,480,33554432

    20912,6,22,2022,8

    21116,6,21,2121,16

    21260,6,20,2120,32

    21215,6,19,2119,64

    21212,6,18,2118,128

    21204,6,17,2117,256

    21180,6,16,2116,512

    21227,6,15,2115,1024

    21212,6,14,2114,2048

    21205,6,13,2113,4096

    21209,6,12,2112,8192

    21248,6,11,2111,16384

    21260,6,10,2110,32768

    21276,6,9,219,65536

    21250,6,8,218,131072

    21226,6,7,217,262144

    21339,6,6,216,524288

    21171,6,5,215,1048576

    21129,6,4,214,2097152

    20488,6,3,203,4194304

    20087,6,2,202,8388608

    29200,6,1,291,16777216

    48751,6,0,480,33554432


    obrienlabs:_exp michaelobrien$ java -version

    java version "11.0.4" 2019-07-16 LTS

    Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS)

    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)

  2. j8 compiled running as j8 - notice the faster multithreaded performance  15% but the slower single thread 70%

    :_exp $ /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin/java -cp .:org.obrienscience.collatz.server.ForkJoinCollatzServer.jar org.obrienscience.collatz.server.ForkJoinCollatzServer 4 6

    ForkJoinCollatzServer forkJoinPool-power-start end runs (v 20161009)

    availableProc : 16

    fjps threads : 4,6

    freeMemory() : 509461096

    maxMemory() : 7635730432

    totalMemory() : 514850816


    22134,4,22,2222,8

    18764,4,21,1821,16

    18548,4,20,1820,32

    18446,4,19,1819,64

    18487,4,18,1818,128

    18435,4,17,1817,256

    18442,4,16,1816,512

    18394,4,15,1815,1024

    18229,4,14,1814,2048

    18303,4,13,1813,4096

    18310,4,12,1812,8192

    18269,4,11,1811,16384

    18256,4,10,1810,32768

    18299,4,9,189,65536

    18419,4,8,188,131072

    18643,4,7,187,262144

    18650,4,6,186,524288

    21240,4,5,215,1048576

    18097,4,4,184,2097152

    19635,4,3,193,4194304

    29562,4,2,292,8388608

    47790,4,1,471,16777216

    81512,4,0,810,33554432

    17951,5,22,1722,8

    18068,5,21,1821,16

    18234,5,20,1820,32

    18258,5,19,1819,64

    18333,5,18,1818,128

    18268,5,17,1817,256

    18203,5,16,1816,512

    18213,5,15,1815,1024

    18218,5,14,1814,2048

    18229,5,13,1813,4096

    18192,5,12,1812,8192

    18230,5,11,1811,16384

    18224,5,10,1810,32768

    18253,5,9,189,65536

    18251,5,8,188,131072

    18263,5,7,187,262144

    18985,5,6,186,524288

    18356,5,5,185,1048576

    18375,5,4,184,2097152

    20206,5,3,203,4194304

    29912,5,2,292,8388608

    47833,5,1,471,16777216

    81722,5,0,810,33554432

    18243,6,22,1822,8

    18348,6,21,1821,16

    18458,6,20,1820,32

    18440,6,19,1819,64

    18438,6,18,1818,128

    18472,6,17,1817,256

    18329,6,16,1816,512

    18312,6,15,1815,1024

    18317,6,14,1814,2048

    18385,6,13,1813,4096

    18326,6,12,1812,8192

    18409,6,11,1811,16384

    18352,6,10,1810,32768

    18353,6,9,189,65536

    18321,6,8,188,131072

    18355,6,7,187,262144

    18396,6,6,186,524288

    18259,6,5,185,1048576

    18302,6,4,184,2097152

    20777,6,3,203,4194304

    30267,6,2,302,8388608

    47914,6,1,471,16777216

    82373,6,0,820,33554432



    recompile for Java 11

         <plugins>

          <plugin>

            <groupId>org.apache.maven.plugins</groupId>

            <artifactId>maven-compiler-plugin</artifactId>

            <version>3.6.0</version>

            <configuration>

              <!-- source>1.11</source>

              <target>1.11</target-->

              <release>11</release></configuration>


    21303,4,22,2122,8

    20458,4,21,2021,16

    20810,4,20,2020,32

    21116,4,19,2119,64

    21044,4,18,2118,128

    20978,4,17,2017,256

    21094,4,16,2116,512

    20964,4,15,2015,1024

    21029,4,14,2114,2048

    21059,4,13,2113,4096

    20933,4,12,2012,8192

    20888,4,11,2011,16384

    20960,4,10,2010,32768

    21293,4,9,219,65536

    21379,4,8,218,131072

    21572,4,7,217,262144

    21410,4,6,216,524288

    21208,4,5,215,1048576

    20956,4,4,204,2097152

    20327,4,3,203,4194304

    19951,4,2,192,8388608

    29179,4,1,291,16777216

    48451,4,0,480,33554432

  3. TP52

    @biometrics MINGW64 /c/_experiment
    $ java -cp org.obrienscience.collatz.server.ForkJoinCollatzServer.jar org.obrienscience.collatz.server.ForkJoinCollatzServer 4 6 1
    ForkJoinCollatzServer forkJoinPool-power-start end runs (v 20161009)
    availableProc : 12
    fjps threads : 4,6
    freeMemory() : 1016363720
    maxMemory() : 15228469248
    totalMemory() : 1027080192
    System.getEnv() : 
    Range: bits : 25
    20839,4,22,2022,8
    17933,4,21,1721,16
    17763,4,20,1720,32
    17937,4,19,1719,64
    17647,4,18,1718,128
    17672,4,17,1717,256
    17709,4,16,1716,512
    17669,4,15,1715,1024
    17616,4,14,1714,2048
    17659,4,13,1713,4096
    19029,4,12,1912,8192
    18099,4,11,1811,16384
    18100,4,10,1810,32768
    17700,4,9,179,65536
    17797,4,8,178,131072
    17831,4,7,177,262144
    18188,4,6,186,524288
    19340,4,5,195,1048576
    17711,4,4,174,2097152
    18427,4,3,183,4194304
    26158,4,2,262,8388608
    48533,4,1,481,16777216
    90756,4,0,900,33554432
    17731,5,22,1722,8
    17678,5,21,1721,16
    17655,5,20,1720,32
    17629,5,19,1719,64
    17661,5,18,1718,128
    17653,5,17,1717,256
    17644,5,16,1716,512
    17655,5,15,1715,1024
    17704,5,14,1714,2048
    17664,5,13,1713,4096
    17648,5,12,1712,8192
    17681,5,11,1711,16384
    17665,5,10,1710,32768
    17685,5,9,179,65536
    18035,5,8,188,131072
    17965,5,7,177,262144
    18049,5,6,186,524288
    17739,5,5,175,1048576
    17998,5,4,174,2097152
    18096,5,3,183,4194304
    27027,5,2,272,8388608
    47326,5,1,471,16777216
    89711,5,0,890,33554432
    17830,6,22,1722,8
    17733,6,21,1721,16
    17821,6,20,1720,32
    17811,6,19,1719,64
    17833,6,18,1718,128
    17804,6,17,1717,256
    17795,6,16,1716,512
    17793,6,15,1715,1024
    17790,6,14,1714,2048
    17800,6,13,1713,4096
    17781,6,12,1712,8192
    17781,6,11,1711,16384
    17861,6,10,1710,32768
    17892,6,9,179,65536
    17954,6,8,178,131072
    17914,6,7,177,262144
    17932,6,6,176,524288
    17940,6,5,175,1048576
    18092,6,4,184,2097152
    19898,6,3,193,4194304
    26273,6,2,262,8388608
    48812,6,1,481,16777216
    89955,6,0,890,33554432


    @biometrics MINGW64 /c/_experiment
    $ java -version
    java version "1.8.0_221"
    Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)


    Installed 11.0.5 (up from 11.0.4) - getting 1.8.0 speeds again

    21909,5,22,2122,8

    18812,5,21,1821,16

    18277,5,20,1820,32

    18512,5,19,1819,64

    18266,5,18,1818,128

    18481,5,17,1817,256

    18326,5,16,1816,512

    18441,5,15,1815,1024

    18211,5,14,1814,2048

    18343,5,13,1813,4096

    18409,5,12,1812,8192

    18313,5,11,1811,16384

    18271,5,10,1810,32768

    18398,5,9,189,65536

    18263,5,8,188,131072

    18313,5,7,187,262144

    18262,5,6,186,524288

    18272,5,5,185,1048576

    18264,5,4,184,2097152

    17758,5,3,173,4194304

    17498,5,2,172,8388608

    26281,5,1,261,16777216

    47492,5,0,470,33554432

    18507,6,22,1822,8

    18482,6,21,1821,16

    18571,6,20,1820,32

    18694,6,19,1819,64

    18800,6,18,1818,128

    18693,6,17,1817,256

    18691,6,16,1816,512

    18800,6,15,1815,1024

    18779,6,14,1814,2048

    18627,6,13,1813,4096

    18795,6,12,1812,8192

    18917,6,11,1811,16384

    18939,6,10,1810,32768

    19147,6,9,199,65536

    18857,6,8,188,131072

    18955,6,7,187,262144

    18933,6,6,186,524288

    18729,6,5,185,1048576

    18468,6,4,184,2097152

    17994,6,3,173,4194304

    17622,6,2,172,8388608

    26810,6,1,261,16777216

    51022,6,0,510,33554432

    obrienlabs:_exp $ java -version

    java version "11.0.5" 2019-10-15 LTS

    Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)

    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)


    for the 5820 on 11.0.5

    12164,4,22,1222,8

    11735,4,21,1121,16

    11569,4,20,1120,32

    11481,4,19,1119,64

    11500,4,18,1118,128

    11487,4,17,1117,256

    11484,4,16,1116,512

    11482,4,15,1115,1024

    11475,4,14,1114,2048

    11472,4,13,1113,4096

    11480,4,12,1112,8192

    11562,4,11,1111,16384

    11567,4,10,1110,32768

    11530,4,9,119,65536

    11561,4,8,118,131072

    11566,4,7,117,262144

    11707,4,6,116,524288

    12394,4,5,125,1048576

    11571,4,4,114,2097152

    11898,4,3,113,4194304

    15091,4,2,152,8388608

    28467,4,1,281,16777216

    54617,4,0,540,33554432

    11618,5,22,1122,8

    11616,5,21,1121,16

    11572,5,20,1120,32

    11575,5,19,1119,64

    11583,5,18,1118,128

    11594,5,17,1117,256

    11602,5,16,1116,512

    11591,5,15,1115,1024

    11580,5,14,1114,2048

    11578,5,13,1113,4096

    11584,5,12,1112,8192

    11584,5,11,1111,16384

    11596,5,10,1110,32768

    11590,5,9,119,65536

    11597,5,8,118,131072

    11643,5,7,117,262144

    11750,5,6,116,524288

    11697,5,5,115,1048576

    11617,5,4,114,2097152

    11897,5,3,113,4194304

    14884,5,2,142,8388608

    28509,5,1,281,16777216

    54373,5,0,540,33554432

    11684,6,22,1122,8

    11672,6,21,1121,16

    11674,6,20,1120,32

    11691,6,19,1119,64

    11685,6,18,1118,128

    11686,6,17,1117,256

    11699,6,16,1116,512

    11699,6,15,1115,1024

    11703,6,14,1114,2048

    11719,6,13,1113,4096

    11724,6,12,1112,8192

    11733,6,11,1111,16384

    11745,6,10,1110,32768

    11723,6,9,119,65536

    11753,6,8,118,131072

    11774,6,7,117,262144

    11869,6,6,116,524288

    11799,6,5,115,1048576

    11821,6,4,114,2097152

    12002,6,3,123,4194304

    15045,6,2,152,8388608

    28688,6,1,281,16777216

    54380,6,0,540,33554432


    @biometric2 MINGW64 /c/_dev

    $ java -version

    java version "11.0.5" 2019-10-15 LTS

    Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)

    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)


    percent better between 1.8/1.11 on # threads
    13 on 1024
    21 on 8
    40 on 4
    41 on 2
    40 on 1conclusion:
    The Macbook 8-core I9-9980 at 2.4GHz is 6-7% faster than an OC 6-core 5820 at 4.2 GHz for 1 to 2 cores, but drops off due to thermal throttling for 4-8 cores.
    1 core is 6% faster
    2 cores is 7% faster
    4 cores is 18% slower - TT on
    8 cores is 51% slower - TT on



    raspberry pi 3 - 32bit 1.8.0_64 (max 270 of 400 on 4 cores without 64 bit)

    599906,3,22,59922,8

    549620,3,21,54921,16

    539931,3,20,53920,32

    545243,3,19,54519,64

    534528,3,18,53418,128

    538106,3,17,53817,256

    544344,3,16,54416,512

    535077,3,15,53515,1024

    517395,3,14,51714,2048

    521976,3,13,52113,4096

    529738,3,12,52912,8192

    496108,3,11,49611,16384

    520691,3,10,52010,32768

    511613,3,9,5119,65536

    500932,3,8,5008,131072

    504206,3,7,5047,262144

    494307,3,6,4946,524288

    491319,3,5,4915,1048576

    525733,3,4,5254,2097152

    495765,3,3,4953,4194304

    463885,3,2,4632,8388608

    568585,3,1,5681,16777216

    1009217,3,0,10090,33554432

    591905,4,22,59122,8

    610186,4,21,61021,16

    603414,4,20,60320,32

    594263,4,19,59419,64

    583575,4,18,58318,128

    590557,4,17,59017,256

    566525,4,16,56616,512

    565132,4,15,56515,1024

    575157,4,14,57514,2048

    561121,4,13,56113,4096

    566273,4,12,56612,8192

    557091,4,11,55711,16384

    545216,4,10,54510,32768

    559148,4,9,5599,65536

    539666,4,8,5398,131072

    560226,4,7,5607,262144

    519707,4,6,5196,524288

    503850,4,5,5035,1048576

    494686,4,4,4944,2097152

    497380,4,3,4973,4194304

    470605,4,2,4702,8388608

    570895,4,1,5701,16777216

    1012051,4,0,10120,33554432

    694078,5,22,69422,8

    710193,5,21,71021,16

    700458,5,20,70020,32

    698760,5,19,69819,64

    673676,5,18,67318,128

    671337,5,17,67117,256

    679798,5,16,67916,512

    771955,5,15,77115,1024

    749718,5,14,74914,2048


    top - 13:19:27 up  9:17,  5 users,  load average: 3.43, 3.88, 4.12

    Tasks: 156 total,   1 running, 155 sleeping,   0 stopped,   0 zombie

    %Cpu0  : 64.9 us,  8.2 sy,  0.0 ni, 25.8 id,  0.0 wa,  0.0 hi,  1.0 si,  0.0 st

    %Cpu1  : 74.0 us,  3.1 sy,  0.0 ni, 22.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

    %Cpu2  : 65.3 us, 10.2 sy,  0.0 ni, 24.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

    %Cpu3  : 55.9 us, 10.8 sy,  0.0 ni, 33.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

    KiB Mem:   947744 total,   294092 used,   653652 free,    37956 buffers

    KiB Swap:   102396 total,        0 used,   102396 free.   151432 cached Mem


      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                                            

    22697 pi        20   0  306660  19200   9468 S 258.2  2.0   2:42.18 java -cp org.obrienscience.collatz.server.ForkJoinCollatzServer.jar org.obrienscience.collatz.server.ForkJoinCollatzServer 2 3 1                                   

    22809 pi        20   0    5140   2544   2152 R   2.0  0.3   0:01.02 top                                                                                                                                                                

       10 root      rt   0       0      0      0 S   1.0  0.0   0:04.65 [migration/1]                    


    pi@raspberrypi:~ $ cat /proc/cpuinfo

    processor : 3

    model name : ARMv7 Processor rev 4 (v7l)

    BogoMIPS : 76.80

    Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

    CPU implementer : 0x41

    CPU architecture: 7

    CPU variant : 0x0

    CPU part : 0xd03

    CPU revision : 4

    Hardware : BCM2709

    Revision : a22082

    Serial : 000000005de9b90e

                           

    589312,2,22,58922,8

    578953,2,21,57821,16

    566568,2,20,56620,32

    548020,2,19,54819,64

    437909,2,18,43718,128

    441010,2,17,44117,256

    444904,2,16,44416,512

    462980,2,15,46215,1024

    442886,2,14,44214,2048

    441317,2,13,44113,4096

    442714,2,12,44212,8192

    439480,2,11,43911,16384

    457914,2,10,45710,32768

    452545,2,9,4529,65536

    452326,2,8,4528,131072

    449764,2,7,4497,262144

    445505,2,6,4456,524288

    452137,2,5,4525,1048576

    449089,2,4,4494,2097152

    442246,2,3,4423,4194304

    442642,2,2,4422,8388608

    561875,2,1,5611,16777216

    1005098,2,0,10050,33554432

    508294,3,22,50822,8

    518880,3,21,51821,16

    518568,3,20,51820,32

    512266,3,19,51219,64

    515773,3,18,51518,128

    510463,3,17,51017,256

    503526,3,16,50316,512

    500126,3,15,50015,1024

    496820,3,14,49614,2048

    494195,3,13,49413,4096

    495680,3,12,49512,8192

    492872,3,11,49211,16384

    492132,3,10,49210,32768

    483878,3,9,4839,65536

    486580,3,8,4868,131072

    602285,3,7,6027,262144

  4. biometric 2 3.3ghz 2200mhz ram wsl

    11188,5,22,1122,8
    9251,5,21,921,16
    11610,5,20,1120,32
    11802,5,19,1119,64
    11553,5,18,1118,128
    11615,5,17,1117,256
    11650,5,16,1116,512
    11615,5,15,1115,1024
    11520,5,14,1114,2048
    11525,5,13,1113,4096
    11488,5,12,1112,8192
    11509,5,11,1111,16384
    11575,5,10,1110,32768
    11639,5,9,119,65536
    11549,5,8,118,131072
    11501,5,7,117,262144
    11684,5,6,116,524288
    11526,5,5,115,1048576
    11486,5,4,114,2097152
    11723,5,3,113,4194304
    17312,5,2,172,8388608
    33356,5,1,331,16777216
    63607,5,0,630,33554432

    biometric 3 3.3g 2333mhz ram wsl

    13077,5,22,1322,8
    11840,5,21,1121,16
    11942,5,20,1120,32
    11829,5,19,1119,64
    11771,5,18,1118,128
    11791,5,17,1117,256
    11730,5,16,1116,512
    11748,5,15,1115,1024
    11757,5,14,1114,2048
    11811,5,13,1113,4096
    11725,5,12,1112,8192
    11754,5,11,1111,16384
    11726,5,10,1110,32768
    11849,5,9,119,65536
    11726,5,8,118,131072
    11768,5,7,117,262144
    12009,5,6,126,524288
    11817,5,5,115,1048576
    11707,5,4,114,2097152
    12220,5,3,123,4194304
    18675,5,2,182,8388608
    35357,5,1,351,16777216
    66871,5,0,660,33554432


    biometric4 3.9ghz 384/1.5/15g hyperv 11/12 cores

    11/12 cores, 12g ram

    14396,5,22,1422,8
    12687,5,21,1221,16
    12269,5,20,1220,32
    12256,5,19,1219,64
    12227,5,18,1218,128
    12267,5,17,1217,256
    12242,5,16,1216,512
    12236,5,15,1215,1024
    12235,5,14,1214,2048
    12246,5,13,1213,4096
    12258,5,12,1212,8192
    12258,5,11,1211,16384
    12439,5,10,1210,32768
    12354,5,9,129,65536
    12422,5,8,128,131072
    12106,5,7,127,262144
    12392,5,6,126,524288
    12255,5,5,125,1048576
    12228,5,4,124,2097152
    13289,5,3,133,4194304
    17839,5,2,172,8388608
    32403,5,1,321,16777216
    60977,5,0,600,33554432
    12212,6,22,1222,8
    12144,6,21,1221,16
    12147,6,20,1220,32
    12140,6,19,1219,64
    12142,6,18,1218,128
    12129,6,17,1217,256
    12137,6,16,1216,512
    12116,6,15,1215,1024
    12111,6,14,1214,2048
    12225,6,13,1213,4096
    12891,6,12,1212,8192
    13585,6,11,1311,16384
    13697,6,10,1310,32768
    14073,6,9,149,65536
    12379,6,8,128,131072
    12262,6,7,127,262144
    12223,6,6,126,524288
    12106,6,5,125,1048576
    11959,6,4,114,2097152
    12426,6,3,123,4194304
    17155,6,2,172,8388608
    33347,6,1,331,16777216
    65155,6,0,650,33554432

    p17-g1

    17985,5,22,1722,8
    17127,5,21,1721,16
    17172,5,20,1720,32
    17097,5,19,1719,64
    17096,5,18,1718,128
    17091,5,17,1717,256
    17087,5,16,1716,512
    17081,5,15,1715,1024
    17087,5,14,1714,2048
    17206,5,13,1713,4096
    17124,5,12,1712,8192
    17129,5,11,1711,16384
    17136,5,10,1710,32768
    17222,5,9,179,65536
    17202,5,8,178,131072
    17189,5,7,177,262144
    17293,5,6,176,524288
    17175,5,5,175,1048576
    17231,5,4,174,2097152
    17090,5,3,173,4194304
    18593,5,2,182,8388608
    34415,5,1,341,16777216
    61615,5,0,610,33554432
    17152,6,22,1722,8
    17155,6,21,1721,16
    17126,6,20,1720,32
    17137,6,19,1719,64
    17140,6,18,1718,128
    17148,6,17,1717,256
    17138,6,16,1716,512
    17132,6,15,1715,1024
    17133,6,14,1714,2048
    17153,6,13,1713,4096
    17140,6,12,1712,8192
    17147,6,11,1711,16384
    17172,6,10,1710,32768
    17159,6,9,179,65536
    17167,6,8,178,131072
    17291,6,7,177,262144
    17310,6,6,176,524288
    17283,6,5,175,1048576
    17229,6,4,174,2097152
    17369,6,3,173,4194304
    18532,6,2,182,8388608
    33978,6,1,331,16777216
    61045,6,0,610,33554432


    x1c-g9

    17054,5,22,1722,8
    18929,5,21,1821,16
    22363,5,20,2220,32
    19689,5,19,1919,64
    18927,5,18,1818,128
    18587,5,17,1817,256
    17204,5,16,1716,512
    16865,5,15,1615,1024
    16468,5,14,1614,2048
    19153,5,13,1913,4096
    18411,5,12,1812,8192
    22386,5,11,2211,16384
    27679,5,10,2710,32768
    27584,5,9,279,65536
    25460,5,8,258,131072
    23764,5,7,237,262144
    21604,5,6,216,524288
    15017,5,5,155,1048576
    15770,5,4,154,2097152
    16427,5,3,163,4194304
    32480,5,2,322,8388608
    53396,5,1,531,16777216
    84806,5,0,840,33554432
    32313,6,22,3222,8
    28043,6,21,2821,16
    26264,6,20,2620,32
    27148,6,19,2719,64
    28278,6,18,2818,128
    29401,6,17,2917,256
    27885,6,16,2716,512
    26633,6,15,2615,1024
    28744,6,14,2814,2048
    21120,6,13,2113,4096
    33397,6,12,3312,8192
    27236,6,11,2711,16384
    29175,6,10,2910,32768
    20099,6,9,209,65536
    30268,6,8,308,131072
    28019,6,7,287,262144
    25968,6,6,256,524288
    25782,6,5,255,1048576
    26177,6,4,264,2097152
    26273,6,3,263,4194304
    32981,6,2,322,8388608
    47412,6,1,471,16777216
    74378,6,0,740,33554432