[petsc-dev] ccache tips?

Balay, Satish balay at mcs.anl.gov
Fri Jan 17 14:21:01 CST 2020


I guess you can just create links [from mpicc to ccache] instead of
these wrapper scripts in these locations - with the same ccache
performance?

And with the scripts [mpicc/mpicxx links to ccache] in PATH - you
don't need --with-mpi-dir [and mpiexec/include/lib work-around]

Also is there an advantage to have mpicc linked to ccache instead of
gcc? [I guess having both linked to ccache will result in duplicate
ccache searches for the same command?]

Satish

On Fri, 17 Jan 2020, Jed Brown wrote:

> To use system MPI, I made a directory with one-line scripts
> 
> $ rg . ~/usr/ccache/mpich/
> /home/jed/usr/ccache/mpich/bin/mpiexec
> 1:#!/bin/sh
> 3:/opt/mpich/bin/mpiexec "$@"
> 
> /home/jed/usr/ccache/mpich/bin/mpicc
> 1:#!/bin/dash
> 3:ccache /opt/mpich/bin/mpicc "$@"
> 
> /home/jed/usr/ccache/mpich/bin/mpicxx
> 1:#!/bin/dash
> 3:ccache /opt/mpich/bin/mpicxx "$@"
> 
> 
> ln -s /opt/mpich/include ~/usr/ccache/mpich/include
> mkdir ~/usr/ccache/mpich/lib            # Configure wants (or wanted) this directory to exist, but it can be empty
> 
> 
> Then --with-mpi-dir=$HOME/usr/ccache/mpich is all you need.  Works with
> all packages and I haven't touched it in nearly a decade.
> 
> Matthew Knepley <knepley at gmail.com> writes:
> 
> > I configured MPI with CC="ccache gcc"
> >
> > knepley/feature-dm-remove-hybrid *$:/PETSc3/petsc/petsc-dev$
> > /PETSc3/petsc/bin/mpicc -show
> > /Users/knepley/MacSoftware/bin/ccache gcc -Qunused-arguments
> > -fstack-protector -Qunused-arguments -g3 -Wl,-flat_namespace
> > -I/PETSc3/petsc/include -L/PETSc3/petsc/lib -lpmpich -lmpic
> > h -lopa -lmpl -lpthread
> >
> > and then used --with-mpi-dir. This is the way to go if you do multiple
> > ARCHes. Have not had a problem on OSX or Linux. Works with all packages.
> >
> >    Matt
> >
> > On Fri, Jan 17, 2020 at 11:29 AM Patrick Sanan <patrick.sanan at gmail.com>
> > wrote:
> >
> >> I'm shamefully not using ccache. How do I do it? Is it as simple as
> >> ./configure --with-cc="ccache gcc" --with-cxx="ccache g++"? Works on OS X
> >> and various Linuxes? Any known issue with external packages or otherwise?
> >
> >
> >
> > -- 
> > What most experimenters take for granted before they begin their
> > experiments is infinitely more interesting than any results to which their
> > experiments lead.
> > -- Norbert Wiener
> >
> > https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
> 



More information about the petsc-dev mailing list