Loïc Grenié on Mon, 04 Dec 2023 09:42:05 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: PARI/GP pthread questions |
* Bill Allombert [2023-12-03 13:15]:
[...]
> > 2)
> > Under 3.4.22 nbthreads
> > ...
> > * pthread: number of threads (unlimited, default: number of cores)
> > ...
> >
> > On 16C/32T AMD 7950X CPU I see 3200% CPU in top when starting
> > GP script with parforeach.
> >
> > So should above doc be corrected to
> >
> > "default: #cores * #threads_per_cor"
> >
> > or better to be correct for multi-CPU systems:
>
> When we wrote that, hyperthreading was only used in mainframes.
> It would be much better if the default was the number of cores instead of the number
> of hyperthreads.
> Unfortunately the GNU C library only report the number of CPU threads
> see getconf "_NPROCESSORS_CONF".
> I recommends to set nbthreads to the total number of cores.
Is there a difference with the simpler 'nproc' (from coreutils) ?
For systems with hyper-threading, one can get the number of physical cores
as follows on my laptop:
# grep '^cpu cores' /proc/cpuinfo | uniq
cpu cores : 4
# getconf _NPROCESSORS_CONF
8
# nproc
8
Maybe we could include the number of physical cores in the output of
Configure --mt=pthreads ? And add to INSTALL.tex that we advise to
override the default value of nbthreads in gprc.
Not sure whether it would be wise to change the default in
pthread.c:pari_mt_init().