Organisationsocaml-multicoremulticore-benchefb15d (main)macos-homebrew-5.3_arm64_opam-2.4

macos-homebrew-5.3_arm64_opam-2.4

Link Copied
Code Copied

Logs

2025-09-10 00:50.27: New job: test ocaml-multicore/multicore-bench https://github.com/ocaml-multicore/multicore-bench.git#refs/heads/main (efb15d8562dbdc1ba976ffc574de028e3c11c123) (macos-arm64:macos-homebrew-5.3_arm64_opam-2.4)
Base: macos-homebrew-ocaml-5.3
Opam project build


To reproduce locally:


git clone --recursive "https://github.com/ocaml-multicore/multicore-bench.git" -b "main" && cd "multicore-bench" && git reset --hard efb15d85
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM macos-homebrew-ocaml-5.3
# macos-homebrew-5.3_arm64_opam-2.4
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
RUN ln -f ~/local/bin/opam-2.4 ~/local/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
RUN cd ~/opam-repository && (git cat-file -e 109398e2fd61803126becd398df0f1eabc9f3ca2 || git fetch origin master) && git reset -q --hard 109398e2fd61803126becd398df0f1eabc9f3ca2 && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 multicore-bench.opam ./src/./
RUN opam pin add -yn multicore-bench.dev './src/./'
RUN echo '(lang dune 3.0)' > './src/./dune-project'
ENV DEPS="astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base camlp-streams.5.0.1 cmdliner.1.3.0 cppo.1.8.0 csexp.1.5.2 domain-local-await.1.0.1 domain_shims.0.1.0 dune.3.20.2 fmt.0.11.0 logs.0.9.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-version.4.0.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.13.2 result.1.5 seq.base thread-table.1.0.0 topkg.1.1.0 yojson.3.0.0"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.4 --depext-only -y multicore-bench.dev $DEPS
RUN opam install $DEPS
COPY --chown=1000:1000 . ./src
RUN cd ./src && opam exec -- dune build @install @check @runtest && rm -rf _build


END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK


2025-09-10 00:50.27: Using cache hint "ocaml-multicore/multicore-bench-macos-homebrew-ocaml-5.3-macos-homebrew-5.3_arm64_opam-2.4-6002683b6d421cfbe1933c41f8fca838"
2025-09-10 00:50.27: Using OBuilder spec:
((from macos-homebrew-ocaml-5.3)
(comment macos-homebrew-5.3_arm64_opam-2.4)
(user (uid 1000) (gid 1000))
(env CLICOLOR_FORCE 1)
(env OPAMCOLOR always)
(run (shell "ln -f ~/local/bin/opam-2.4 ~/local/bin/opam"))
(run (shell "opam init --reinit -ni"))
(run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
(run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 109398e2fd61803126becd398df0f1eabc9f3ca2 || git fetch origin master) && git reset -q --hard 109398e2fd61803126becd398df0f1eabc9f3ca2 && git log --no-decorate -n1 --oneline && opam update -u"))
(copy (src multicore-bench.opam) (dst ./src/./))
(run (network host)
(shell "opam pin add -yn multicore-bench.dev './src/./'"))
(run (network host)
(shell "echo '(lang dune 3.0)' > './src/./dune-project'"))
(env DEPS "astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base camlp-streams.5.0.1 cmdliner.1.3.0 cppo.1.8.0 csexp.1.5.2 domain-local-await.1.0.1 domain_shims.0.1.0 dune.3.20.2 fmt.0.11.0 logs.0.9.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-version.4.0.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.13.2 result.1.5 seq.base thread-table.1.0.0 topkg.1.1.0 yojson.3.0.0")
(env CI true)
(env OCAMLCI true)
(run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))
(network host)
(shell "opam update --depexts && opam install --cli=2.4 --depext-only -y multicore-bench.dev $DEPS"))
(run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))
(network host)
(shell "opam install $DEPS"))
(copy (src .) (dst ./src))
(run (shell "cd ./src && opam exec -- dune build @install @check @runtest && rm -rf _build"))
)


2025-09-10 00:50.27: Waiting for resource in pool OCluster
2025-09-10 04:57.04: Waiting for worker…
2025-09-10 07:16.13: Got resource from pool OCluster
Building on m1-worker-02
All commits already cached
HEAD is now at efb15d8 Inline `Atomic` and `Ref` ops and unroll


(from macos-homebrew-ocaml-5.3)
2025-09-10 07:16.14 ---> using "6ee950b55569b1a3f8a7953dc679318bf303d3a70ac7d49901c0ac2ca3805d7c" from cache


/: (comment macos-homebrew-5.3_arm64_opam-2.4)


/: (user (uid 1000) (gid 1000))


/: (env CLICOLOR_FORCE 1)


/: (env OPAMCOLOR always)


/: (run (shell "ln -f ~/local/bin/opam-2.4 ~/local/bin/opam"))
2025-09-10 07:16.14 ---> using "98f27ffc931cc35f6fd0434c4b7cb74004ae5b966eac1b4d0d724f37574600ad" from cache


/: (run (shell "opam init --reinit -ni"))
No configuration file found, using built-in defaults.
Checking for available remotes: rsync and local, git.
- you won't be able to use mercurial repositories unless you install the hg command on your system.
- you won't be able to use darcs repositories unless you install the darcs command on your system.


This version of opam requires an update to the layout of /Users/mac1000/.opam from version 2.1 to version 2.2, which can't be reverted.
You may want to back it up before going further.


Continue? [Y/n] y
[NOTE] The 'jobs' option was reset, its value was 1 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
opam option jobs=1 --global
Format upgrade done.


<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] no changes from git+file:///Users/mac1000/opam-repository
2025-09-10 07:16.14 ---> using "05bef02621f4f152ba73fa5008f45408f9224fb6a3f95400ffe628ff48189e9f" from cache


/: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Darwin 24.5.0
The OCaml toplevel, version 5.3.0
2.4.1
2025-09-10 07:16.14 ---> using "a78de44d0fa6eb2299c3aff4eac17004df22cc4faa362aec41a39eccbcb56bb5" from cache


/: (run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))
(network host)
(shell "cd ~/opam-repository && (git cat-file -e 109398e2fd61803126becd398df0f1eabc9f3ca2 || git fetch origin master) && git reset -q --hard 109398e2fd61803126becd398df0f1eabc9f3ca2 && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
* branch                  master     -> FETCH_HEAD
f6368c68f9..109398e2fd  master     -> origin/master
109398e2fd Merge pull request #28437 from maiste/release-dune-3.20.2


<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from git+file:///Users/mac1000/opam-repository


Already up-to-date.
Nothing to do.
# To update the current shell environment, run: eval $(opam env)
2025-09-10 07:16.14 ---> using "d6655980e8f31e30ec6f0f39d60f06c629d2deee35042367ba0a9a44be5896a9" from cache


/: (copy (src multicore-bench.opam) (dst ./src/./))
2025-09-10 07:16.16 ---> saved as "eaca26601de5179f73019beba55e2690a2a0013e078f9eb5b7d4a2340b98728a"


/: (run (network host)
(shell "opam pin add -yn multicore-bench.dev './src/./'"))
[multicore-bench.dev] synchronised (file:///Users/mac1000/src)
multicore-bench is now pinned to file:///Users/mac1000/src (version dev)
2025-09-10 07:16.23 ---> saved as "3168d5949d442e167666c16e5659f1f9cffa24540650da8331917814529eec32"


/: (run (network host)
(shell "echo '(lang dune 3.0)' > './src/./dune-project'"))
2025-09-10 07:16.24 ---> saved as "5efb418e447bb4a21608a94dfb640ea35f3c0eab97f23118ff9027cb3595842c"


/: (env DEPS "astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base camlp-streams.5.0.1 cmdliner.1.3.0 cppo.1.8.0 csexp.1.5.2 domain-local-await.1.0.1 domain_shims.0.1.0 dune.3.20.2 fmt.0.11.0 logs.0.9.0 mdx.2.5.0 mtime.2.1.0 multicore-magic.2.3.1 ocaml.5.3.0 ocaml-base-compiler.5.3.0 ocaml-compiler.5.3.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-version.4.0.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.13.2 result.1.5 seq.base thread-table.1.0.0 topkg.1.1.0 yojson.3.0.0")


/: (env CI true)


/: (env OCAMLCI true)


/: (run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))
(network host)
(shell "opam update --depexts && opam install --cli=2.4 --depext-only -y multicore-bench.dev $DEPS"))
+ /opt/homebrew/bin/brew "update"
- ==> Updating Homebrew...
- Already up-to-date.


<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[multicore-bench.dev] synchronised (file:///Users/mac1000/src)


[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 3).
[NOTE] Package ocaml-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml is already installed (current version is 5.3.0).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-nnp is already installed (current version is base).
[NOTE] Package base-effects is already installed (current version is base).
[NOTE] Package base-domains is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
2025-09-10 07:16.47 ---> saved as "b97fbd33f6654633620d8ad5fffe9c074455e069b9ef1af5a7a98857c4b02258"


/: (run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))
(network host)
(shell "opam install $DEPS"))
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 3).
[NOTE] Package ocaml-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.3.0).
[NOTE] Package ocaml is already installed (current version is 5.3.0).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-nnp is already installed (current version is base).
[NOTE] Package base-effects is already installed (current version is base).
[NOTE] Package base-domains is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
The following actions will be performed:
=== install 23 packages
- install astring            0.8.5
- install backoff            0.1.1
- install camlp-streams      5.0.1
- install cmdliner           1.3.0
- install cppo               1.8.0
- install csexp              1.5.2
- install domain-local-await 1.0.1
- install domain_shims       0.1.0
- install dune               3.20.2
- install fmt                0.11.0
- install logs               0.9.0
- install mdx                2.5.0
- install mtime              2.1.0
- install multicore-magic    2.3.1
- install ocaml-version      4.0.1
- install ocamlbuild         0.16.1
- install ocamlfind          1.9.8
- install re                 1.13.2
- install result             1.5
- install seq                base
- install thread-table       1.0.0
- install topkg              1.1.0
- install yojson             3.0.0


<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved camlp-streams.5.0.1  (cached)
-> retrieved backoff.0.1.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved cmdliner.1.3.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved domain-local-await.1.0.1  (cached)
-> retrieved domain_shims.0.1.0  (cached)
-> retrieved cppo.1.8.0  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved logs.0.9.0  (cached)
-> retrieved mtime.2.1.0  (cached)
-> retrieved multicore-magic.2.3.1  (cached)
-> retrieved mdx.2.5.0  (cached)
-> retrieved ocaml-version.4.0.1  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved result.1.5  (cached)
-> retrieved seq.base  (cached)
-> installed seq.base
-> retrieved re.1.13.2  (cached)
-> retrieved thread-table.1.0.0  (cached)
-> retrieved topkg.1.1.0  (cached)
-> retrieved yojson.3.0.0  (cached)
-> retrieved dune.3.20.2  (cached)
-> installed cmdliner.1.3.0
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.0
-> installed mtime.2.1.0
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed logs.0.9.0
-> installed dune.3.20.2
-> installed domain_shims.0.1.0
-> installed csexp.1.5.2
-> installed backoff.0.1.1
-> installed ocaml-version.4.0.1
-> installed thread-table.1.0.0
-> installed result.1.5
-> installed multicore-magic.2.3.1
-> installed camlp-streams.5.0.1
-> installed cppo.1.8.0
-> installed domain-local-await.1.0.1
-> installed re.1.13.2
-> installed yojson.3.0.0
-> installed mdx.2.5.0
Done.
# To update the current shell environment, run: eval $(opam env)
2025-09-10 07:17.29 ---> saved as "7459cff656daf7c521841f202681ebf11d752a570691baa3b1ab1eed06140f22"


/: (copy (src .) (dst ./src))
2025-09-10 07:17.31 ---> saved as "47aebf81758e23b980a492c4a40921a0fbd9fb03a91a52619c80a3d3976473aa"


/: (run (shell "cd ./src && opam exec -- dune build @install @check @runtest && rm -rf _build"))
(cd _build/default/bench && ./main.exe -brief)
Atomic:
ops over time/cas int:
141.74 M/s
ops over time/get:
653.17 M/s
ops over time/incr:
135.80 M/s
ops over time/push & pop:
92.05 M/s
ops over time/swap:
96.43 M/s
ops over time/xchg int:
165.97 M/s
time per op/cas int:
7.06 ns
time per op/get:
1.53 ns
time per op/incr:
7.36 ns
time per op/push & pop:
10.86 ns
time per op/swap:
10.37 ns
time per op/xchg int:
6.03 ns
Atomic incr:
ops over time/CAS, 1 domains:
138.12 M/s
ops over time/CAS, 2 domains:
32.97 M/s
ops over time/CAS, 4 domains:
18.24 M/s
ops over time/CAS, 8 domains:
5.67 M/s
ops over time/CAS with backoff, 1 domains:
139.54 M/s
ops over time/CAS with backoff, 2 domains:
132.54 M/s
ops over time/CAS with backoff, 4 domains:
117.35 M/s
ops over time/CAS with backoff, 8 domains:
84.47 M/s
ops over time/Incr, 1 domains:
140.37 M/s
ops over time/Incr, 2 domains:
56.56 M/s
ops over time/Incr, 4 domains:
40.63 M/s
ops over time/Incr, 8 domains:
22.68 M/s
time per op/CAS, 1 domains:
7.24 ns
time per op/CAS, 2 domains:
60.66 ns
time per op/CAS, 4 domains:
219.28 ns
time per op/CAS, 8 domains:
1410.50 ns
time per op/CAS with backoff, 1 domains:
7.17 ns
time per op/CAS with backoff, 2 domains:
15.09 ns
time per op/CAS with backoff, 4 domains:
34.09 ns
time per op/CAS with backoff, 8 domains:
94.73 ns
time per op/Incr, 1 domains:
7.12 ns
time per op/Incr, 2 domains:
35.36 ns
time per op/Incr, 4 domains:
98.46 ns
time per op/Incr, 8 domains:
352.72 ns
Bounded_q:
messages over time/1 adder, 1 taker:
13.01 M/s
messages over time/1 adder, 2 takers:
7.39 M/s
messages over time/1 adder, 4 takers:
5.78 M/s
messages over time/2 adders, 1 taker:
9.86 M/s
messages over time/2 adders, 2 takers:
8.48 M/s
messages over time/2 adders, 4 takers:
5.61 M/s
messages over time/4 adders, 1 taker:
6.82 M/s
messages over time/4 adders, 2 takers:
5.68 M/s
messages over time/4 adders, 4 takers:
5.71 M/s
messages over time/one domain:
18.52 M/s
time per message/1 adder, 1 taker:
153.68 ns
time per message/1 adder, 2 takers:
406.02 ns
time per message/1 adder, 4 takers:
865.74 ns
time per message/2 adders, 1 taker:
304.22 ns
time per message/2 adders, 2 takers:
471.61 ns
time per message/2 adders, 4 takers:
1069.29 ns
time per message/4 adders, 1 taker:
733.30 ns
time per message/4 adders, 2 takers:
1056.96 ns
time per message/4 adders, 4 takers:
1401.61 ns
time per message/one domain:
53.99 ns
Hashtbl:
operations over time/1 worker, 10% reads:
23.36 M/s
operations over time/1 worker, 50% reads:
22.66 M/s
operations over time/1 worker, 90% reads:
30.50 M/s
operations over time/2 workers, 10% reads:
9.57 M/s
operations over time/2 workers, 50% reads:
9.72 M/s
operations over time/2 workers, 90% reads:
13.77 M/s
operations over time/4 workers, 10% reads:
9.66 M/s
operations over time/4 workers, 50% reads:
9.88 M/s
operations over time/4 workers, 90% reads:
12.68 M/s
operations over time/8 workers, 10% reads:
5.57 M/s
operations over time/8 workers, 50% reads:
5.69 M/s
operations over time/8 workers, 90% reads:
7.54 M/s
operations over time/one domain, 10% reads:
36.37 M/s
operations over time/one domain, 50% reads:
35.83 M/s
operations over time/one domain, 90% reads:
52.26 M/s
time per operation/1 worker, 10% reads:
42.81 ns
time per operation/1 worker, 50% reads:
44.12 ns
time per operation/1 worker, 90% reads:
32.78 ns
time per operation/2 workers, 10% reads:
208.94 ns
time per operation/2 workers, 50% reads:
205.78 ns
time per operation/2 workers, 90% reads:
145.19 ns
time per operation/4 workers, 10% reads:
414.06 ns
time per operation/4 workers, 50% reads:
404.73 ns
time per operation/4 workers, 90% reads:
315.38 ns
time per operation/8 workers, 10% reads:
1437.24 ns
time per operation/8 workers, 50% reads:
1406.13 ns
time per operation/8 workers, 90% reads:
1061.17 ns
time per operation/one domain, 10% reads:
27.50 ns
time per operation/one domain, 50% reads:
27.91 ns
time per operation/one domain, 90% reads:
19.14 ns
Queue:
messages over time/one domain:
53.79 M/s
time per message/one domain:
18.59 ns
Ref with Mutex:
ops over time/cas int:
54.77 M/s
ops over time/get:
60.29 M/s
ops over time/incr:
60.29 M/s
ops over time/push & pop:
50.11 M/s
ops over time/swap:
53.68 M/s
ops over time/xchg int:
54.78 M/s
time per op/cas int:
18.26 ns
time per op/get:
16.59 ns
time per op/incr:
16.59 ns
time per op/push & pop:
19.96 ns
time per op/swap:
18.63 ns
time per op/xchg int:
18.26 ns
Ref with [@poll error]:
ops over time/cas int:
157.75 M/s
ops over time/get:
4368.72 M/s
ops over time/incr:
470.22 M/s
ops over time/push & pop:
99.69 M/s
ops over time/swap:
102.99 M/s
ops over time/xchg int:
154.53 M/s
time per op/cas int:
6.34 ns
time per op/get:
0.23 ns
time per op/incr:
2.13 ns
time per op/push & pop:
10.03 ns
time per op/swap:
9.71 ns
time per op/xchg int:
6.47 ns
Stack:
messages over time/one domain:
59.67 M/s
time per message/one domain:
16.76 ns
Unix:
blocking reads over time/1 worker:
2.73 M/s
blocking reads over time/2 workers:
4.29 M/s
blocking reads over time/4 workers:
1.83 M/s
time per blocking read/1 worker:
366.54 ns
time per blocking read/2 workers:
466.66 ns
time per blocking read/4 workers:
2190.02 ns
2025-09-10 07:17.38 ---> saved as "3e1c8fe262db140510f9821994ee753c4d23c8c7c986a7d02c7129cb62a7ad7f"
Job succeeded
2025-09-10 07:17.42: Job succeeded