On 17-02-22 01:53, Åke Sandgren wrote:

On 02/22/2017 03:40 AM, Maxime Boissonneault wrote:
Thanks Robert,
While I understand and am all in favor of reusing dependencies, most
packages with dependencies do not provide download hooks for specific
versions of their dependencies. PETSc is this way, I believe OpenFoam
too. When the developers go through this trouble, I prefer to assume
that they know what they are doing and test with specific versions of
Unfortunately they rarely do (when it comes to HPC systems and
performance issues at least), they just know that the ordinary user
knows even less and try to make it easy for them.

the dependencies. If a user finds a bug, it will be that much simpler to
diagnose if it uses the same versions as the developers.
The main reason i see for NOT letting codes like PETSc do their own
download and build of sub dependencies, is that those dependencies will
not be built in the best way, i.e., they will be suboptimal in speed and
sometimes even buggy.
Well, explicitly, from the PETSc main page:

 * Some packages might not support certain options
   like|--download-PACKAGENAME|or|--with-PACKAGENAME-dir|.
   Architectures like Microsoft Windows might have issues with these
   options. In these cases,|--with-PACKAGENAME-include
   --with-PACKAGENAME-lib|options should be prefered.
 * It's best to install some external packages like SuperLU_DIST,
   MUMPS, Hypre, METIS, and ParMETIS with the
   option|--download-PACKAGENAME|. [the correct options for these
   packages are|--download-superlu_dist --download-mumps
   --download-hypre|]
     o This will install the COMPATIBLE version of the external
       package. A generic install of this package might not be
       compatible with PETSc [perhaps due to version differences - or
       perhaps due to the requirement of additional patches for it to
       work with PETSc]
     o Some packages have bug fixes, portability patches, and upgrades
       for dependent packages that have not yet been included in an
       upstream release.
     o All packages will be installed with the same set of compilers -
       this avoids problems [for example weird link time errors] with
       mixing code compiled with multiple compilers [for example mixing
       gfortran and ifort compiled code].
 * If you want to download a compatible external package manually, then
   the URL for this package is listed in configure source for this
   package. For example, check|config/config.packages/SuperLU.py|for
   the url for download this package.



Maxime

Reply via email to