Thread: Open Discussion
View Single Post
Old 2007-04-05, 16:10   #2
R.D. Silverman
R.D. Silverman's Avatar
Nov 2003

1D2416 Posts

Originally Posted by R.D. Silverman View Post
I would like to open a discussion concerning how best to utilize multi-core
processors to run NFS.

It seems as if cache-contention would be a major constraint against simply
running multiple instances (i.e. give a separate special-q to each core and
let it proceed independently). It might be the case that e.g. running 4
separate instances on a quad core might actually have lower total throughput
than a single core (or 2 cores) owing to cache and bus contention.

An alternative approach would be to give separate parts of the computation
to different cores; while one core is sieving, another core could be computing
the sieve start points and sieve boundary for the next special q to be
processed. Also, once sieving is finished, we could let separate cores
do the trial division on separate candidate smooth values. etc. Will this
approach be better than running multiple copies?

If someone has access to a Windows based multi-core system, I can provide
code and data to perform benchmarks with respect to running multiple
instances. It would be nice to get a feel for how these processors will

I would also be interested in seeing how fast a single NFS thread is on the
new processors when compared with (say) a P4 @3.6GHz. What is the
effect of having a much larger L2 cache on the efficiency of a *single*
instance? (even running at lowe clock rates)
R.D. Silverman is offline