PETSc configure sets up a default value that always gets used. >>>>>>> balay@asterix /home/balay/tmp/petsc (maint=) $ make <snip> Using MAKEFLAGS: -j4 -l6.0 w -- PETSC_DIR=/home/balay/tmp/petsc PETSC_ARCH=arch-linux2-c-debug <<<
You can always override this default by adding a -j option. [since the user specified -j value comes at the end - it overrides the one that is specified at the begining of make command] >>>>>>>>>> balay@asterix /home/balay/tmp/petsc (maint=) $ make -j20 <snip> Using MAKEFLAGS: -j4 -l6.0 w -j20 --jobserver-auth=3,4 -- PETSC_DIR=/home/balay/tmp/petsc PETSC_ARCH=arch-linux2-c-debug <<<<<<<<<< However some older make version might not display this info properly. [it should use the user specified '-j' value though] >>>>>>> [petsc@ipro petsc.maint ((879a78556f...))]$ make -j2 Using MAKEFLAGS: -j7 -l12.0 w --jobserver-fds=3,4 -j -- PETSC_DIR=/Users/petsc/petsc.maint PETSC_ARCH=arch-osx-10.6 <<<<<<< You can use the alternate mode - just modify the default '-j' value used MAKE_NP >>>>>>>> [petsc@ipro petsc.maint ((879a78556f...))]$ make MAKE_NP=2 Using MAKEFLAGS: -j2 -l12.0 w -- PETSC_DIR=/Users/petsc/petsc.maint PETSC_ARCH=arch-osx-10.6 MAKE_NP=2 <<<<<<< Or you can control this default value at configure time [this affects externalpackage builds] ./configure --with-make-np=2 Satish On Tue, 24 Jul 2018, Fande Kong wrote: > Thanks, Jed and Satish, > > > But "make -j N" does not change anything when compiling petsc. > > > > If I do something like: "make -j whatever". Then I always get: > > > Using MAKEFLAGS: -j8 -l36.0 w > > > It looks like PETSc always uses "-j something" that we can not change using > the command-line. > > > Is it a bug? > > > > Fande, > > > > ________________________________ > From: Jed Brown <[email protected]> > Sent: Tuesday, July 24, 2018 3:44 PM > To: Fande Kong; For users of the development version of PETSc > Subject: Re: [petsc-dev] could we let "make -j N" work for PETSc and external > packages? > > Fande Kong <[email protected]> writes: > > > Hi Developers, > > > > > > Could we somehow let "make -j N" to take multiple threads for compiling > > PETSc. Do we use multiple threads when compiling the external packages such > > as hypre, parmetis etc.? > > Yes, see self.parallelMake=0 for the few packages that don't support parallel > make. >
