You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
They are running Helix on a server with a high number of CPUs (208), but a relatively low number of processes (and threads) allowed per user -- ulimit -u is 512. The picker's rayon pool failed to start with ErrorKind::WouldBlock (EAGAIN).
Since nucleo explicitly sets num_threads for the pool, the general RAYON_NUM_THREADS environment variable doesn't work. I suggested using CPU affinity to limit std::thread::available_parallelism() instead, but that's not a great long-term solution to be forcing the use of particular CPUs for the entire process.
I see that Picker::new always passes None to get the default thread count, but I think it would make sense to have some configuration or similar environment variable so the user can override this.
The text was updated successfully, but these errors were encountered:
Ref: rayon-rs/rayon#1227
cc @LelsersLasers
They are running Helix on a server with a high number of CPUs (208), but a relatively low number of processes (and threads) allowed per user --
ulimit -u
is 512. The picker's rayon pool failed to start withErrorKind::WouldBlock
(EAGAIN
).Since
nucleo
explicitly setsnum_threads
for the pool, the generalRAYON_NUM_THREADS
environment variable doesn't work. I suggested using CPU affinity to limitstd::thread::available_parallelism()
instead, but that's not a great long-term solution to be forcing the use of particular CPUs for the entire process.I see that
Picker::new
always passesNone
to get the default thread count, but I think it would make sense to have some configuration or similar environment variable so the user can override this.The text was updated successfully, but these errors were encountered: