Another alternative: use gmakefile directly - and ignore our 'makefile' wrapper.
[with makefile wrapper - we try to control a few things - and print some extra debug info like the MAKEFLAGS]. But if you use 'gmakefile' directly - you would be using PETSc like any other package - it supports 'V=1' for some debug info [which is similar to info provided by most packages] BTW: Any particular why MAKE_NP determined by configure [i.e the default value] is not useful? Satish On Tue, 24 Jul 2018, Fande Kong wrote: > Thanks, Satish, > > I’m going to use MAKE_NP > > Fande > > Sent from my iPhone > > > On Jul 24, 2018, at 4:26 PM, Satish Balay <[email protected]> wrote: > > > > I hate html e-mail which doesn't add reply markers - can't figure out > > easily what you saying :( > > > >>> However some older make version might not display this info properly. [it > >>> should use the user specified '-j' value though] > >> > >> This confused me, and now I understood. But it is misleading. Could we do > >> something at the PETSc side regardless the make version? At least display > >> the user-specified value not the default value. I thought my "-j" did not > >> change anything. > > > > Thats a 'make' issue. you are specifying options to make. So we have no > > control on it [unless make tells us - and this mode is buggy on the OSX > > default make version]. > > > > The only option we have is : not print anything. I think thats a bad option. > > > > You have alternatives: > > > > - use a newer make with --download-make > > > > - or use MAKE_NP > > > > Satish > > > >> On Tue, 24 Jul 2018, Fande Kong wrote: > >> > >> > >> > >> > >> ________________________________ > >> From: Satish Balay <[email protected]> > >> Sent: Tuesday, July 24, 2018 4:06 PM > >> To: Fande Kong > >> Cc: Jed Brown; For users of the development version of PETSc > >> Subject: Re: [petsc-dev] could we let "make -j N" work for PETSc and > >> external packages? > >> > >> 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] > >> > >> This confused me, and now I understood. But it is misleading. Could we do > >> something at the PETSc side regardless the make version? At least display > >> the user-specified value not the default value. I thought my "-j" did not > >> change anything. > >> > >> Fande, > >> > >>>>>>>>> > >> [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. > >>> > >> > >> > > >
