[#64703] Add `Hash#fetch_at` (issue #10017) — Wojtek Mach <wojtek@...>
Hey guys
1 message
2014/09/01
[#64711] [ruby-trunk - Bug #10193] [Closed] TestIO#test_readpartial_locktmp fails randomly — nobu@...
Issue #10193 has been updated by Nobuyoshi Nakada.
3 messages
2014/09/02
[#64744] [ruby-trunk - Bug #10202] [Open] TestBenchmark#test_realtime_output breaks on ARM — v.ondruch@...
Issue #10202 has been reported by Vit Ondruch.
3 messages
2014/09/03
[#64823] documenting constants — Xavier Noria <fxn@...>
I am writing a Rails guide about constant autoloading in Ruby on
5 messages
2014/09/07
[#64838] [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus — ko1@...
Issue #10212 has been reported by Koichi Sasada.
6 messages
2014/09/08
[#64858] Re: [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus
— Eric Wong <normalperson@...>
2014/09/08
rb_env_t may use a flexible array, helps a little even on my busy system:
[#64871] Re: [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus
— SASADA Koichi <ko1@...>
2014/09/08
(2014/09/08 19:48), Eric Wong wrote:
[#64972] [ruby-trunk - Bug #10231] [Open] Process.detach(pid) defines new singleton classes every call — headius@...
Issue #10231 has been reported by Charles Nutter.
3 messages
2014/09/11
[#64980] [ruby-trunk - Bug #10212] MRI is not for lambda calculus — ko1@...
Issue #10212 has been updated by Koichi Sasada.
4 messages
2014/09/12
[#65142] [ruby-trunk - Feature #10267] [Open] Number of processors — akr@...
Issue #10267 has been reported by Akira Tanaka.
4 messages
2014/09/20
[#65144] Re: [ruby-trunk - Feature #10267] [Open] Number of processors
— Eric Wong <normalperson@...>
2014/09/20
akr@fsij.org wrote:
[#65210] [ruby-trunk - misc #10278] [Assigned] [RFC] st.c: use ccan linked list — nobu@...
Issue #10278 has been updated by Nobuyoshi Nakada.
3 messages
2014/09/22
[ruby-core:65156] [ruby-trunk - Feature #10267] Number of processors
From:
normalperson@...
Date:
2014-09-20 06:00:15 UTC
List:
ruby-core #65156
Issue #10267 has been updated by Eric Wong. KOSAKI Motohiro <kosaki.motohiro@gmail.com> wrote: > On Sat, Sep 20, 2014 at 1:03 PM, Eric Wong <normalperson@yhbt.net> wrote: > > akr@fsij.org wrote: > >> matz accepted this feature including the method name, > >> Etc.nprocessors_online. > > > > I think the name is too long. How about naming it after the GNU > > coreutils nproc(1) command? > > > > Etc.nproc(:online) > > This is an option. But "proc" is not unclear on ruby context. It is sometimes > procedure, and it is sometimes process. I like processor or cpu. OK. I mainly want the ability to specify type as arg. > > I think it is important to be able to get all CPUs, not just > > online CPUs, too > > > (to workaround old SMP bugs in the kernel): > > What bug? Anything which may involve synchronizing with softirq or workqueues, I think... I suppose my fix in 128dd1759d96ad36c379240f8b9463e8acfd37a1 (missing barrier in EPOLL_CTL_MOD) is one example. I was never able to reproduce that bug on my HW, but it worries me because some users are still on old kernels and potentially affected. > > Etc.nproc(:all) > > I don't think this is useful. I'd like to explain some kernel internal. > Now, Linux has three type of number of cpus. > > 1) online > 2) present > 3) possible I think these names are fine for Ruby. > "all" is not clear to me. > > If you elaborate why you need nproc(:all), I may be able to suggest better > name. I just chose "all" because it matched the nproc(1) --all option and didn't want to use Linux-specific naming. But online/present/possible is fine, for now, too. We could also have extra options like: :cores - exclude HyperThread (probably useful for Intel users) :physical - number of sockets (maybe for affinity) ---------------------------------------- Feature #10267: Number of processors https://bugs.ruby-lang.org/issues/10267#change-49001 * Author: Akira Tanaka * Status: Open * Priority: Normal * Assignee: * Category: * Target version: ---------------------------------------- How about a method to obtain number of processors? Several committers discussed this feature at RubyKaigi 2014. The number is important to use all available processing power. Too few processes doesn't use all processors. Too much processes wastes processing power. For example, test/lib/test/unit has -j N option for parallel tests and N is the number of processes to run simultaneously. But we must specify N explicitly. I think it should have reasonable default. I propose a primitive method to obtain number of processors for such purpose: Etc.nprocessors_online. It is implemented using sysconf(_SC_NPROCESSORS_ONLN). It is not standardized but available on many platforms: GNU/Linux, NetBSD, FreeBSD, OpenBSD, DragonFly BSD, OpenIndiana, Mac OS X and AIX. usa-san said he will implement on Windows (after this feature is implemented). kosaki-san said he will improve the method for container on GNU/Linux. (If a process is run in a container, usable number of processors may be restricted. So sysconf(_SC_NPROCESSORS_ONLN) may be not approprate.) matz accepted this feature including the method name, Etc.nprocessors_online. However kosaki-san said he will try to find better name (by survey container technology). So I'm waiting. ---Files-------------------------------- etc-nprocessors.patch (1.91 KB) -- https://bugs.ruby-lang.org/