Bill Allombert on Tue, 30 Sep 2025 10:56:33 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: branch bill-bnfinit-parallel


On Sun, Sep 21, 2025 at 11:39:44PM +0200, Bill Allombert wrote:
> Dear PARI developers,
> 
> I have pushed a branch bill-bnfinit-parallel which an attempt to merge the parallel bnfinit code
> to master.
> 
> The branch does not affect bnfinit unless the tech parameter is used.
> It adds 2 extra options:
> instead of [c_{1},  c_{2},  nrpid ], no the full vector is
> [c_{1},  c_{2},  nrpid, maxfact, idex,  nbthr ]
> 
> -- maxfact is the maximal number of factorizations to try by ideal.
>    (500 by default)
> 
> -- idex is the exponent of the ideal to use when searching relation.
>    The default is 0 which lets PARI pick an exponent depending on the norm of
>    the ideal.
> 
> -- nbthr is the number of threads to use (1 by default). If set to 0, use default(nbthreads).
> When nbthr is not 1, the parallel bnfinit code is used.
> 
> One example when the tuning make a large difference:
> 
> x^28+1154*x^26+489873*x^24+100211629*x^22+11699125060*x^20+854076746718*x^18+40959569036260*x^16+1321233290968720*x^14+28785594434947700*x^12+417246803388550268*x^10+3867079700626715505*x^8+21181990617517025086*x^6+59006973863083141311*x^4+63878093656658485059*x^2+21292697885552828353

An issue with the interface is that 0 cannot stand for the default value for
nrpid (and nbthr, but it can be omitted) since 0 is a valid non-default choice.
So for testing parallelism while keeping all the default, we have to use
[0,0,4,0,0,0].

I have made a new version where nrpid=0 is replaced by nrpid=-1.

Probably I should do a similar change for nbthr (0 -> no threads, 1-> use threads)

Cheers,
Bill