{"id":1096,"date":"2024-01-30T00:56:22","date_gmt":"2024-01-30T00:56:22","guid":{"rendered":"https:\/\/mvermeulen.org\/perf\/?page_id=1096"},"modified":"2024-02-07T20:13:47","modified_gmt":"2024-02-07T20:13:47","slug":"java-scimark","status":"publish","type":"page","link":"https:\/\/mvermeulen.org\/perf\/workloads\/phoronix\/java-scimark\/","title":{"rendered":"java-scimark2"},"content":{"rendered":"\n<p>While the binding is in Java, the underlying routines are still in C and the profile is not much different from Scimark. There are six workloads and these are single-threaded.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"960\" src=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/systemtime-84.png\" alt=\"\" class=\"wp-image-1097\" srcset=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/systemtime-84.png 1280w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/systemtime-84-1024x768.png 1024w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/systemtime-84-768x576.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p>Topdown profile shows differences among the tests. The CPU version has one test with high branch misprediction, but this seems tamped down in the Java version.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"960\" src=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/amdtopdown-121.png\" alt=\"\" class=\"wp-image-1098\" srcset=\"https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/amdtopdown-121.png 1280w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/amdtopdown-121-1024x768.png 1024w, https:\/\/mvermeulen.org\/perf\/wp-content\/uploads\/sites\/7\/2024\/01\/amdtopdown-121-768x576.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p>AMD metrics confirm single threaded nature<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>elapsed              101.740\non_cpu               0.048          # 0.77 \/ 16 cores\nutime                77.442\nstime                1.123\nnvcsw                6061           # 91.45%\nnivcsw               567            # 8.55%\ninblock              0              # 0.00\/sec\nonblock              12952          # 127.31\/sec\ncpu-clock            78566629032    # 78.567 seconds\ntask-clock           78574938696    # 78.575 seconds\npage faults          243844         # 3103.330\/sec\ncontext switches     6966           # 88.654\/sec\ncpu migrations       323            # 4.111\/sec\nmajor page faults    2              # 0.025\/sec\nminor page faults    243835         # 3103.216\/sec\nalignment faults     0              # 0.000\/sec\nemulation faults     0              # 0.000\/sec\nbranches             143175014666   # 150.673 branches per 1000 inst\nbranch misses        369747747      # 0.26% branch miss\nconditional          137701502280   # 144.912 conditional branches per 1000 inst\nindirect             290449316      # 0.306 indirect branches per 1000 inst\ncpu-cycles           357048247322   # 0.22 GHz\ninstructions         947412030051   # 2.65 IPC\nslots                716557155222   #\nretiring             294626599862   # 41.1% (41.1%)\n-- ucode             22043579       #     0.0%\n-- fastpath          294604556283   #    41.1%\nfrontend             21243854500    #  3.0% ( 3.0%) low\n-- latency           12986602212    #     1.8%\n-- bandwidth         8257252288     #     1.2%\nbackend              391269290765   # 54.6% (54.6%)\n-- cpu               208947620712   #    29.2%\n-- memory            182321670053   #    25.4%\nspeculation          9364462889     #  1.3% ( 1.3%)\n-- branch mispredict 8821180342     #     1.2%\n-- pipeline restart  543282547      #     0.1%\nsmt-contention       52652075       #  0.0% ( 0.0%)\ncpu-cycles           355730677372   # 0.22 GHz\ninstructions         948230791406   # 2.67 IPC\ninstructions         316779639994   # 59.416 l2 access per 1000 inst\nl2 hit from l1       10828793760    # 38.61% l2 miss\nl2 miss from l1      2792307207     #\nl2 hit from l2 pf    3517655294     #\nl3 hit from l2 pf    4354421742     #\nl3 miss from l2 pf   120933830      #\ninstructions         316604203686   # 99.215 float per 1000 inst\nfloat 512            50             # 0.000 AVX-512 per 1000 inst\nfloat 256            648            # 0.000 AVX-256 per 1000 inst\nfloat 128            31412029930    # 99.215 AVX-128 per 1000 inst\nfloat MMX            0              # 0.000 MMX per 1000 inst\nfloat scalar         28             # 0.000 scalar per 1000 inst\n<\/code><\/pre>\n\n\n\n<p>Intel metrics<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>elapsed              402.843\non_cpu               0.054          # 0.86 \/ 16 cores\nutime                344.403\nstime                1.434\nnvcsw                18472          # 91.84%\nnivcsw               1642           # 8.16%\ninblock              60192          # 149.42\/sec\nonblock              4368           # 10.84\/sec\ncpu-clock            345661731035   # 345.662 seconds\ntask-clock           345681034487   # 345.681 seconds\npage faults          515263         # 1490.574\/sec\ncontext switches     21940          # 63.469\/sec\ncpu migrations       869            # 2.514\/sec\nmajor page faults    403            # 1.166\/sec\nminor page faults    514835         # 1489.335\/sec\nalignment faults     0              # 0.000\/sec\nemulation faults     0              # 0.000\/sec\nbranches             455720412495   # 148.354 branches per 1000 inst\nbranch misses        707526994      # 0.16% branch miss\nconditional          455720433455   # 148.354 conditional branches per 1000 inst\nindirect             916935931      # 0.298 indirect branches per 1000 inst\nslots                1887837681326  #\nretiring             733344951086   # 38.8% (38.8%)\n-- ucode             44537182261    #     2.4%\n-- fastpath          688807768825   #    36.5%\nfrontend             57289147523    #  3.0% ( 3.0%) low\n-- latency           20966437018    #     1.1%\n-- bandwidth         36322710505    #     1.9%\nbackend              1067027486646  # 56.5% (56.5%)\n-- cpu               622814566378   #    33.0%\n-- memory            444212920268   #    23.5%\nspeculation          18286255717    #  1.0% ( 1.0%) low\n-- branch mispredict 18047855058    #     1.0%\n-- pipeline restart  238400659      #     0.0%\nsmt-contention       0              #  0.0% ( 0.0%)\ncpu-cycles           313647299514   # 0.17 GHz\ninstructions         767158407693   # 2.45 IPC\nl2 access            37411980220    # 48.805 l2 access per 1000 inst\nl2 miss              22747730612    # 60.80% l2 miss\n<\/code><\/pre>\n\n\n\n<p>Process profile gives us some of the JVM processes such as garbage collection<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>434 processes\n\t  8 java                   153.24     0.36\n\t  4 Finalizer               76.62     0.18\n\t  3 Common-Cleaner          76.59     0.17\n\t 68 clinfo                  20.52     5.98\n\t 38 vulkaninfo               1.14     1.52\n\t  4 vulkani:disk$0           0.12     0.16\n\t  6 php                      0.08     0.06\n\t  2 llvmpipe-0               0.06     0.08\n\t  2 llvmpipe-1               0.06     0.08\n\t  2 llvmpipe-10              0.06     0.08\n\t  2 llvmpipe-11              0.06     0.08\n\t  2 llvmpipe-12              0.06     0.08\n\t  2 llvmpipe-13              0.06     0.08\n\t  2 llvmpipe-14              0.06     0.08\n\t  2 llvmpipe-15              0.06     0.08\n\t  2 llvmpipe-2               0.06     0.08\n\t  2 llvmpipe-3               0.06     0.08\n\t  2 llvmpipe-4               0.06     0.08\n\t  2 llvmpipe-5               0.06     0.08\n\t  2 llvmpipe-6               0.06     0.08\n\t  2 llvmpipe-7               0.06     0.08\n\t  2 llvmpipe-8               0.06     0.08\n\t  2 llvmpipe-9               0.06     0.08\n\t  6 clang                    0.05     0.07\n\t  3 rocminfo                 0.03     0.00\n\t 13 C1 CompilerThre          0.00   186.19\n\t  4 C2 CompilerThre          0.00    76.62\n\t  4 G1 Conc#0                0.00    76.62\n\t  4 GC Thread#0              0.00    76.62\n\t  4 Reference Handl          0.00    76.62\n\t  4 Service Thread           0.00    76.62\n\t  4 Signal Dispatch          0.00    76.62\n\t  4 Sweeper thread           0.00    76.62\n\t  4 G1 Refine#0              0.00    76.61\n\t  4 VM Thread                0.00    76.61\n\t  3 GC Thread#1              0.00    76.59\n\t  3 GC Thread#2              0.00    76.59\n\t  3 GC Thread#3              0.00    76.59\n\t  3 GC Thread#4              0.00    76.59\n\t  3 GC Thread#5              0.00    76.59\n\t  3 GC Thread#6              0.00    76.59\n\t  3 GC Thread#7              0.00    76.59\n\t  3 GC Thread#8              0.00    76.59\n\t  3 GC Thread#9              0.00    76.59\n\t  1 lspci                    0.00     0.03\n\t  1 ps                       0.00     0.01\n\t 83 sh                       0.00     0.00\n\t 13 gsettings                0.00     0.00\n\t 12 gcc                      0.00     0.00\n\t  8 stat                     0.00     0.00\n\t  8 systemd-detect-          0.00     0.00\n\t  6 llvm-link                0.00     0.00\n\t  5 phoronix-test-s          0.00     0.00\n\t  4 G1 Main Marker           0.00     0.00\n\t  4 G1 Young RemSet          0.00     0.00\n\t  4 VM Periodic Tas          0.00     0.00\n\t  4 glxinfo                  0.00     0.00\n\t  3 java-scimark2            0.00     0.00\n\t  2 gmain                    0.00     0.00\n\t  2 lscpu                    0.00     0.00\n\t  2 setterm                  0.00     0.00\n\t  2 uname                    0.00     0.00\n\t  2 which                    0.00     0.00\n\t  1 cc                       0.00     0.00\n\t  1 date                     0.00     0.00\n\t  1 dconf worker             0.00     0.00\n\t  1 dirname                  0.00     0.00\n\t  1 dmesg                    0.00     0.00\n\t  1 dmidecode                0.00     0.00\n\t  1 grep                     0.00     0.00\n\t  1 ifconfig                 0.00     0.00\n\t  1 ip                       0.00     0.00\n\t  1 lsmod                    0.00     0.00\n\t  1 mktemp                   0.00     0.00\n\t  1 qdbus                    0.00     0.00\n\t  1 readlink                 0.00     0.00\n\t  1 realpath                 0.00     0.00\n\t  1 sed                      0.00     0.00\n\t  1 sort                     0.00     0.00\n\t  1 stty                     0.00     0.00\n\t  1 systemctl                0.00     0.00\n\t  1 template.sh              0.00     0.00\n\t  1 wc                       0.00     0.00\n0 processes running\n47 maximum processes\n<\/code><\/pre>\n\n\n\n<p>The computation block<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>      1804315) java-scimark2    cpu=10 start=34.81 finish=60.23\n        1804316) java             cpu=4 start=34.81 finish=60.22\n          1804317) java             cpu=5 start=34.81 finish=60.22\n            1804318) GC Thread#0      cpu=-1 start=34.81 finish=60.22\n            1804319) G1 Main Marker   cpu=0 start=34.82 finish=60.20\n            1804320) G1 Conc#0        cpu=-1 start=34.82 finish=60.22\n            1804321) G1 Refine#0      cpu=-1 start=34.82 finish=60.20\n            1804322) G1 Young RemSet  cpu=0 start=34.82 finish=60.20\n            1804323) VM Thread        cpu=-1 start=34.83 finish=60.22\n              1804335) GC Thread#1      cpu=-1 start=54.74 finish=60.22\n              1804336) GC Thread#2      cpu=-1 start=54.74 finish=60.22\n              1804337) GC Thread#3      cpu=-1 start=54.74 finish=60.22\n              1804338) GC Thread#4      cpu=-1 start=54.74 finish=60.22\n              1804339) GC Thread#5      cpu=-1 start=54.74 finish=60.22\n              1804340) GC Thread#6      cpu=-1 start=54.74 finish=60.22\n              1804341) GC Thread#7      cpu=-1 start=54.74 finish=60.22\n              1804342) GC Thread#8      cpu=-1 start=54.74 finish=60.22\n              1804343) GC Thread#9      cpu=-1 start=54.74 finish=60.22\n            1804324) Reference Handl  cpu=-1 start=34.83 finish=60.22\n            1804325) Finalizer        cpu=15 start=34.83 finish=60.22\n            1804326) Signal Dispatch  cpu=-1 start=34.83 finish=60.22\n            1804327) Service Thread   cpu=-1 start=34.83 finish=60.22\n            1804328) C2 CompilerThre  cpu=-1 start=34.83 finish=60.22\n              1804331) C1 CompilerThre  cpu=-1 start=34.84 finish=45.13\n                1804334) C1 CompilerThre  cpu=-1 start=34.86 finish=35.79\n            1804329) C1 CompilerThre  cpu=-1 start=34.83 finish=60.22\n              1804344) C1 CompilerThre  cpu=-1 start=60.20 finish=60.22\n            1804330) Sweeper thread   cpu=-1 start=34.83 finish=60.22\n            1804332) VM Periodic Tas  cpu=0 start=34.84 finish=60.20\n            1804333) Common-Cleaner   cpu=13 start=34.84 finish=60.22\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>While the binding is in Java, the underlying routines are still in C and the profile is not much different from Scimark. There are six workloads and these are single-threaded. Topdown profile shows differences among the tests. The CPU version <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/mvermeulen.org\/perf\/workloads\/phoronix\/java-scimark\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":58,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1096","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/comments?post=1096"}],"version-history":[{"count":2,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1096\/revisions"}],"predecessor-version":[{"id":1575,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/1096\/revisions\/1575"}],"up":[{"embeddable":true,"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/pages\/58"}],"wp:attachment":[{"href":"https:\/\/mvermeulen.org\/perf\/wp-json\/wp\/v2\/media?parent=1096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}