Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LibUV_jll] Update to new build #55647

Merged
merged 1 commit into from
Aug 31, 2024
Merged

Conversation

giordano
Copy link
Contributor

Corresponding PR to Yggdrasil: JuliaPackaging/Yggdrasil#9337.

This build includes backports of libuv/libuv#4278 (useful for for #46226) and libuv/libuv#4521 (useful for #55592)

@giordano giordano added building Build system, or building Julia or its dependencies external dependencies Involves LLVM, OpenBLAS, or other linked libraries JLLs labels Aug 31, 2024
@giordano
Copy link
Contributor Author

I downloaded the x86_64-linux-gnu build of this PR in a Docker container I started with

docker run --cpus=12 -ti --rm ubuntu

and I get

julia> @ccall uv_available_parallelism()::Cint
12

julia> @ccall jl_effective_threads()::Cint
32

julia> Sys.CPU_THREADS
32

uv_available_parallelism respects the cgroups settings inside the Docker container, as expected. This PR, together with #55592, will finally fix #46226

@giordano
Copy link
Contributor Author

giordano commented Aug 31, 2024

The only negative news is that the more accurate uv_available_parallelism (which is currently unused in Julia) on Linux comes at a largish performance cost:

# on e22e4de5de7
julia> @benchmark @ccall uv_available_parallelism()::Cint
BenchmarkTools.Trial: 10000 samples with 196 evaluations.
 Range (min … max):  476.561 ns … 715.587 ns  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     487.857 ns               ┊ GC (median):    0.00%
 Time  (mean ± σ):   489.036 ns ±   7.979 ns  ┊ GC (mean ± σ):  0.00% ± 0.00%

           ▁▃█▅▆▆▄▅▃
  ▁▂▂▂▂▆▅▄▆█████████▅▄▇▃▂▂▂▁▁▂▂▁▂▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▃
  477 ns           Histogram: frequency by time          527 ns <

 Memory estimate: 0 bytes, allocs estimate: 0.

# On this PR
julia> @benchmark @ccall uv_available_parallelism()::Cint
BenchmarkTools.Trial: 10000 samples with 1 evaluation.
 Range (min … max):  9.608 μs … 516.103 μs  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     9.719 μs               ┊ GC (median):    0.00%
 Time  (mean ± σ):   9.974 μs ±   7.294 μs  ┊ GC (mean ± σ):  0.00% ± 0.00%

  ▁▄█▇▇▅▄▂▂▂▁                                                 ▁
  ████████████▇██▅▆▆▇▇▆▆▅▅▂▅▄▂▄▅▇▇██▆▇▄▄▆▄▄▆▅▅▆▇▆▇▅▅▄▃▅▄▅▃▂▄▃ █
  9.61 μs      Histogram: log(frequency) by time      11.6 μs <

 Memory estimate: 0 bytes, allocs estimate: 0.

@giordano
Copy link
Contributor Author

I'm going to merge this PR: there are no functional changes on the Julia side, it's only updating the version of libuv to include two backported upstream commits.

@giordano giordano merged commit d81a45b into JuliaLang:master Aug 31, 2024
10 checks passed
@giordano giordano deleted the mg/libuv branch August 31, 2024 20:22
KristofferC pushed a commit that referenced this pull request Sep 12, 2024
Corresponding PR to Yggdrasil:
JuliaPackaging/Yggdrasil#9337.

This build includes backports of
libuv/libuv#4278 (useful for for #46226) and
libuv/libuv#4521 (useful for #55592)
kshyatt pushed a commit that referenced this pull request Sep 12, 2024
Corresponding PR to Yggdrasil:
JuliaPackaging/Yggdrasil#9337.

This build includes backports of
libuv/libuv#4278 (useful for for #46226) and
libuv/libuv#4521 (useful for #55592)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies external dependencies Involves LLVM, OpenBLAS, or other linked libraries JLLs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant