[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [coreutils] draft [PATCH] sort: explicit --parallel=N now overrides
From: |
Jim Meyering |
Subject: |
Re: [coreutils] draft [PATCH] sort: explicit --parallel=N now overrides environment |
Date: |
Sun, 12 Dec 2010 14:46:51 +0100 |
Pádraig Brady wrote:
> On 11/12/10 09:05, Paul Eggert wrote:
>> It seems to me that this code in sort.c:
>>
>> unsigned long int np2 = num_processors (NPROC_CURRENT_OVERRIDABLE);
>> if (!nthreads || nthreads > np2)
>> nthreads = np2;
>>
>> is now obsolete. It was written assuming spin locks, but now that
>> we use mutexes, shouldn't we respect an explicit --parallel=N
>> flag? Something like the following, say? This would let the user
>> override the environment in the command line, which is normally what
>> people would expect.
>
> Yes I think you're right.
> Related to this is the default number chosen,
> which might be best to restrict to 8 or so
> as there are diminishing returns after that.
8 sounds like a reasonable threshold.
I ran tests on a 6-core i7-970 (which shows as 12-core):
gensort -a 10000000 in-10M
env time --format=%e sort in-10M > /dev/null
N-parallel elapsed_seconds (avg of 10 trials)
12 6.91
8 7.13
gensort -a 20000000 in-20M
env time --format=%e sort in-20M > /dev/null
N-parallel elapsed_seconds (avg of 10 trials)
12 13.94
8 14.34
It is indeed a case of diminishing returns, at least in these cases.
> Of course we'd need to benchmark again with
> all the recent changes to find an appropriate default.
> The gcc compile farm has a niagra 32 core (gcc12) and
> and a magny-cours 24 core (gcc10) available.
>
> Also I notice Chen has inadvertently been omitted from THANKS,
I have not been adding commit "author" names to THANKS
partly because eventually I want to generate that file from the
combination of the git commit log and a VC'd list of other
name/email pairs.
> and that his UCLA email address should
> probably be added to .mailmap
Good eye.
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), (continued)
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), Jim Meyering, 2010/12/11
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), Paul Eggert, 2010/12/11
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), Jim Meyering, 2010/12/12
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), Paul Eggert, 2010/12/12
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), Jim Meyering, 2010/12/13
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), Paul Eggert, 2010/12/13
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), Paul Eggert, 2010/12/16
- [coreutils] Re: bug#7597: multi-threaded sort can segfault (unrelated to the sort -u segfault), Pádraig Brady, 2010/12/16
- [coreutils] draft [PATCH] sort: explicit --parallel=N now overrides environment, Paul Eggert, 2010/12/11
- Re: [coreutils] draft [PATCH] sort: explicit --parallel=N now overrides environment, Pádraig Brady, 2010/12/11
- Re: [coreutils] draft [PATCH] sort: explicit --parallel=N now overrides environment,
Jim Meyering <=
Re: bug#7489: [coreutils] over aggressive threads in sort, Paul Eggert, 2010/12/04