Re: [petsc-dev] make -j not supported? Why???
I get the second case. And I find the following line in my configure.log file: CMake configured successfully, but could not be used by default because --with-cuda was used My python version is fine, 2.6.6. Most of my builds are with cuda support - bummer that they can't be parallel builds as well. Dave ________________________________________ From: [email protected] [[email protected]] on behalf of Satish Balay [[email protected]] Sent: Monday, February 25, 2013 4:06 PM To: For users of the development version of PETSc Subject: Re: [petsc-dev] make -j not supported? Why??? Parallel build prints someting like:
========================================== Building PETSc using CMake with 5 build threads ========================================== Re-run cmake file: Makefile older than: ../CMakeLists.txt -- Configuring done -- Generating done -- Build files have been written to: /home/balay/spetsc/asterix64 Scanning dependencies of target petsc [ 0%] Building C object CMakeFiles/petsc.dir/src/sys/classes/draw/utils/lgc.c.o [ 1%] Building C object CMakeFiles/petsc.dir/src/mat/impls/mffd/mffd.c.o [ 1%] [ 1%] Building C object CMakeFiles/petsc.dir/src/dm/impls/plex/ftn-auto/plexcreatef.c.o
<<<<<<<<< etc.. Note: if you are building cuda stuff or have python < 2.5 - then you are using legacy build [i.e sequential/recursive make] and see stuff like:
libfast in: /home/balay/spetsc/src libfast in: /home/balay/spetsc/src/sys libfast in: /home/balay/spetsc/src/sys/classes libfast in: /home/balay/spetsc/src/sys/classes/viewer libfast in: /home/balay/spetsc/src/sys/classes/viewer/impls libfast in: /home/balay/spetsc/src/sys/classes/viewer/impls/socket libfast in: /home/balay/spetsc/src/sys/classes/viewer/impls/socket/ftn-custom libfast in: /home/balay/spetsc/src/sys/classes/viewer/impls/ascii libfast in: /home/balay/spetsc/src/sys/classes/viewer/impls/ascii/ftn-auto libfast in: /home/balay/spetsc/src/sys/classes/viewer/impls/ascii/ftn-custom libfast in: /home/balay/spetsc/src/sys/classes/viewer/impls/binary <<<< etc..
Satish On Mon, 25 Feb 2013, Nystrom, William D wrote:
Is there a way to examine the petsc build logs and determine if I am really getting parallel builds? I have a top level script that I use to the petsc configure script followed by make. For a couple of our test bed systems that stay fairly unloaded, I use the following configure option: --with-make-np=16. But I also invoke my script like this: /usr/bin/time -p makePetscDev_caddy >& makePetscDev_caddy.log. And I'll get a time like the following:
real 2160.77 user 1308.21 sys 234.37
So it does not seem like I am getting much if any parallelism in my build. I am also building with lots of external packages and have no idea if parallel builds are being done with them.
Thanks,
Dave
-- Dave Nystrom LANL HPC-5 Phone: 505-667-7913 Email: [email protected] Smail: Mail Stop B272 Group HPC-5 Los Alamos National Laboratory Los Alamos, NM 87545
________________________________________ From: [email protected] [[email protected]] on behalf of Barry Smith [[email protected]] Sent: Monday, February 25, 2013 3:25 PM To: For users of the development version of PETSc Subject: Re: [petsc-dev] make -j not supported? Why???
Tim,
As usual, a too short error message without enough information. I've changed it so that it will now give you
Barrys-MacBook-Pro:petsc-dev barrysmith$ make -j 3 ccmake ********************* ERROR ************************* PETSc compiles are automatically parallel, do not provide the -j option to make ****************************************************** make: *** [chk_makej] Error 1 Barrys-MacBook-Pro:petsc-dev barrysmith$ make -j 3 all-legacy ********************* ERROR ************************* Parallel build with 'make -j' is not supported for PETSc legacy builds. Run without -j <np> or ./configure PETSc with --download-cmake to enable parallel builds with PETSc ****************************************************** make[1]: *** [chk_makej] Error 1 make: *** [all-legacy] Error 2 Barrys-MacBook-Pro:petsc-dev barrysmith$
Explanations: When PETSc is using cmake makefiles from the top level makefiles we pass our own -j <np> down, make doesn't like having two levels of -j and at best prints a confusing warning message about the parallel build.
When using PETSc's legacy make system it uses a recursive make that is not able to be parallelized (yes it is bad and hence the cmake version is used by default now).
Notes: It would be nice if we could somehow remove the -j <np> at the top level so that it didn't generate the error message and just ran but make doesn't allow this type of thing.
It would be nice if we could eliminate the messages like
make[1]: *** [chk_makej] Error 1 make: *** [all-legacy] Error 2
that make generates automatically but I cannot figure out how to do that.
So the current situation is a compromise where most users get automatically a parallel build and the users who knowingly provide a -j <np> option get slightly peeved. (My guess is 90+% of people who install PETSc don't know about the -j option). At least now it will explain that it is doing a parallel build.
I'll check on the -k option next.
Barry
On Feb 25, 2013, at 2:58 PM, Jed Brown <[email protected]> wrote:
This is to support different backends. If configure found CMake, then normal "make" will use multiple jobs, or you can do it explicitly with make -j3 $PETSC_ARCH.
CMake would be terrible as a hard dependency (it's terrible enough as it is) but it's less bad than some alternatives.
On Mon, Feb 25, 2013 at 3:30 PM, Tim Tautges <[email protected]> wrote: tautges@chronos:~/code/petsc-dev-moab$ make -j 8 ********************* ERROR ************************* Parallel build with 'make -j' is not supported ****************************************************** make: *** [chk_makej] Error 1 tautges@chronos:~/code/petsc-dev-moab$
Why??? I can almost understand petsc's justification for its own autotools-looking python-based build system, but why its need to not support otherwise-standard make options? Similarly, PETSC_MAKE_STOP_ON_ERROR instead of make -k?
- tim
-- ================================================================ "You will keep in perfect peace him whose mind is steadfast, because he trusts in you." Isaiah 26:3
Tim Tautges Argonne National Laboratory ([email protected]) (telecommuting from UW-Madison) phone (gvoice): (608) 354-1459 1500 Engineering Dr. fax: (608) 263-4499 Madison, WI 53706
participants (1)
-
Nystrom, William D