Answers inlined below.
    
Well, what is the value of N?mesh = UnitIntervalMesh(N)
raises the error
ValueError: Number of cells must be a positive integer
while the file runs correctly on my laptop with another version of Firedrake.
It's not correct to say that Firedrake requires a specific MPI implementation or that it requires a specific version of OpenMPI. Firedrake, in principle at least, should work with any MPI implementation.
I did not encounter any issue while running the installation script, but I know that Firedrake requires a version of OpenMPI different from the one installed on my machine,
Firedrake uses whatever MPI implementation provides mpicc and similar command. You can check e.g. whatso I load the required version before sourcing Firedrake. Maybe this is not enough for Firedrake to access the required version?
Below are the commands I used to load the module and install Firedrake:
module load/mpi/compat-openmpi16-x86_64
python firedrake-install --no-package-manager --disable-ssh
and to source the Firedrake environment before running simulations:
module load/mpi/compat-openmpi16-x86_64
source firedrake/bin/activate
Does Firedrake use the loaded version of openmpi with these commands, or is there something missing?