[petsc-users] Running PETSc/SLEPc tests inside/outside a singularity container

Satish Balay balay at mcs.anl.gov
Wed Jan 13 11:17:04 CST 2021


On Wed, 13 Jan 2021, Jan Grießer via petsc-users wrote:

> Hello all,
> I have a question about the tests for PETSc/PETSc4Py and SLEPc4Py when these libraries are compiled inside a Singularity container (The .def file for compilation is attached). The compilation of the libraries is no problem, only if you call "make all check" for PETSc and "make check" for SLEPC at the end of the compilation, error messages appear for PETSc or the Singularity build aborts for SLEPc (see output.txt). I guess the problems are only related to the "sudo" rights, which are needed to build the containers.

ooks like the container build [and the test] is done as root.

and OpenMPI suggests:

>>>
You can override this protection by adding the --allow-run-as-root option
to the cmd line or by setting two environment variables in the following way:
the variable OMPI_ALLOW_RUN_AS_ROOT=1 to indicate the desire to override this
protection, and OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 to confirm the choice and
add one more layer of certainty that you want to do so.
We reiterate our advice against doing so - please proceed at your own risk.
<<<<

So perhaps there is a way to do this whole process as a regular user [and not root?] - or set the above 2 env variables?

> With slepc I don't even have access to the makelog because the container can't be built at all.

I'm not sure what you mean here - and why the make.log would exist in a regular build - and not in a container build.

> For the 4Py versions I could navigate via singularity shell into the corresponding directories and execute the runtests. These returned an ok for all tests.
> Is there a clever way to start tests for the c-Versions of PETSc/SLEPc afterwards to check for the correct build of the Libaries? Using the singularity shell to navigate into petsc and using gmakefile test throws an „Read-only file system“ error, as expected. 
> 

Hm - you should be able to copy a petsc example, corresponding makefile to a read/write location, and compile/run it.

Satish


More information about the petsc-users mailing list