Karim Belabas on Sun, 03 Dec 2023 15:09:57 +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(). Cheers, K.B. -- Pr. Karim Belabas, U. Bordeaux, Vice-président en charge du Numérique Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77 http://www.math.u-bordeaux.fr/~kbelabas/