[petsc-users] PETSc with Julia Binary Builder

Barry Smith bsmith at petsc.dev
Fri Jul 2 11:45:51 CDT 2021



> On Jul 2, 2021, at 10:03 AM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
> 
> Patrick
> 
> Should this be fixed in PETSc build system? https://github.com/JuliaPackaging/Yggdrasil/blob/master/P/PETSc/bundled/patches/petsc_name_mangle.patch

   This line worries me.

   How does the get work here? If the first argument is a list while the second seems to be a (n empty) string then what will the [0] do with the empty string? It seems possible the use of get in Configure has to be double checked everywhere it is used to ensure consistency between whether a list or some other type is returned. Perhaps a custom "get" is needed for configure to make the code clean and always handle lists etc properly?

   Barry


> 
>> On Jul 2, 2021, at 9:05 AM, Patrick Sanan <patrick.sanan at gmail.com> wrote:
>> 
>> As you mention in [4], the proximate cause of the configure failure is this link error [8]:
>> 
>> Naively, that looks like a problem to be resolved at the level of the C++ compiler and MPI.
>> 
>> Unless there are wrinkles of this build process that I don't understand (likely), this [6] looks non-standard to me:
>> 
>> 	includedir="${prefix}/include"
>> 	...
>> 	./configure --prefix=${prefix} \
>> 		...
>> 		-with-mpi-include="${includedir}" \
>> 		...
>> 
>> 
>> Is it possible to configure using  --with-mpi-dir, instead of the separate --with-mpi-include and --with-mpi-lib commands? 
>> 
>> 
>> As an aside, maybe Satish can say more, but I'm not sure if it's advisable to override variables in the make command [7].
>> 
>> [8] 	https://gist.github.com/jkozdon/c161fb15f2df23c3fbc0a5a095887ef8#file-configure-log-L7795
>> [6] 	https://gist.github.com/jkozdon/c161fb15f2df23c3fbc0a5a095887ef8#file-build_tarballs-jl-L45
>> [7] 	https://gist.github.com/jkozdon/c161fb15f2df23c3fbc0a5a095887ef8#file-build_tarballs-jl-L55
>> 
>> 
>>> Am 02.07.2021 um 06:25 schrieb Kozdon, Jeremy (CIV) <jekozdon at nps.edu>:
>>> 
>>> I have been talking with Boris Kaus and Patrick Sanan about trying to revive the Julia PETSc interface wrappers. One of the first things to get going is to use Julia's binary builder [1] to wrap more scalar, real, and int type builds of the PETSc library; the current distribution is just Real, double, Int32. I've been working on a PR for this [2] but have been running into some build issues on some architectures [3].
>>> 
>>> I doubt that anyone here is an expert with Julia's binary builder system, but I was wondering if anyone who is better with the PETSc build system can see anything obvious from the configure.log [4] that might help me sort out what's going on.
>>> 
>>> This exact script worked on 2020-08-20 [5] to build the libraries, se something has obviously changed with either the Julia build system and/or one (or more!) of the dependency binaries.
>>> 
>>> For those that don't know, Julia's binary builder system essentially allows users to download binaries directly from the web for any system that the Julia Programing language distributes binaries for. So a (desktop) user can get MPI, PETSc, etc. without the headache of having to build anything from scratch; obviously on clusters you would still want to use system MPIs and what not.
>>> 
>>> ----
>>> 
>>> [1] https://github.com/JuliaPackaging/BinaryBuilder.jl
>>> [2] https://github.com/JuliaPackaging/Yggdrasil/pull/3249
>>> [3] https://github.com/JuliaPackaging/Yggdrasil/pull/3249#issuecomment-872698681
>>> [4] https://gist.github.com/jkozdon/c161fb15f2df23c3fbc0a5a095887ef8#file-configure-log
>>> [5] https://github.com/JuliaBinaryWrappers/PETSc_jll.jl/releases/tag/PETSc-v3.13.4%2B0
>> 
> 



More information about the petsc-users mailing list