[Cado-nfs-discuss] OpenMP Usage
Emmanuel.Thome at inria.fr
Thu Nov 15 08:35:25 CET 2018
On Wed, Nov 14, 2018 at 07:06:23PM -0500, Robert Pancoast wrote:
> Hello Emmanuel,
> I appreciate the insight. Is it possible to convert the subprograms
> that use C++11 threads.and posix threads to use OpenMP?
Probably not, and we won't do that anyway. These are three different
interfaces to mostly the same bare bones, and it's pointless to express a
strong preference or dislike for one versus the others. All have pros and
cons. The idea of convenience or habits for the person programming the
software comes first.
> which subprograms compose the majority of execution time throughout
sieving (aka "las" in cado-nfs).
> On Wed, Nov 14, 2018 at 2:54 AM Emmanuel Thomé <Emmanuel.Thome at inria.fr> wrote:
> > On Tue, Nov 13, 2018 at 09:22:07PM -0500, Robert Pancoast wrote:
> > > Greetings,
> > >
> > > I have an interest in further exploring cado-nfs usage, but it has been quite some time since I have looked into the sources. In the current codebase, does there exist openMP usage? What are the major stages of a factorization, and which (if any) utilization openMP?
> > Hi,
> > cado-nfs does use openmp. More broadly, cado-nfs has been using threads
> > from day one. This being said, cado-nfs comprises many subprograms, and
> > their use of threads varies. Here's a quick recap off the top of my head
> > (with some help from "git grep"):
> > polyselect:
> > main program uses posix threads.
> > root optimization uses openmp.
> > DL polyselect uses openmp.
> > sieve:
> > "makefb" uses posix threads.
> > "las" uses posix threads and C++11 threads.
> > "batch cofactorization" uses openmp.
> > filter:
> > heavylifting of relation i/o uses posix threads (with minimalist
> > locking) (this is pervasive in almost all of the filter code).
> > some spots in "merge" and "replay" use openmp.
> > linear algebra:
> > most of the code uses posix threads, as well as MPI.
> > linear generator computation uses openmp and MPI (subject to evolve soon).
> > other:
> > "characters" and "sqrt" use posix threads.
> > "crtalgsqrt" uses posix threads and MPI.
> > Whether some code is written to use posix threads or openmp or c++11
> > threads or whatnot depends on multiple factors. Some things are best done
> > in one model rather than another. Some of the authors have a preference
> > towards one model rather than another, too.
> > E.
More information about the Cado-nfs-discuss