BioContainers / containers

Bioinformatics containers
http://biocontainers.pro
Apache License 2.0
683 stars 248 forks source link

MrBayes container needs ssh or rsh installed #404

Open lgorenstein opened 3 years ago

lgorenstein commented 3 years ago

MrBayes container is missing ssh and/or rsh. Because of this, the MPI version of the program can not be launched:

$ singularity run https://depot.galaxyproject.org/singularity/mrbayes:3.2.7--h19cf415_2 mpirun -np 2 mb-mpi
--------------------------------------------------------------------------
The value of the MCA parameter "plm_rsh_agent" was set to a path
that could not be found:

  plm_rsh_agent: ssh : rsh

Please either unset the parameter, or check that the path is correct
--------------------------------------------------------------------------
[host.example.com:141273] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error plm_rsh_component.c(335)

The issue can be somewhat mitigated by exporting OMPI_MCA_plm_rsh_agent="" in the parent shell, but this leads to another undesired effect: in the absence of ssh or rsh OpenMPI can no longer launch across multiple nodes (i.e. parallel runs are only confined to cores within a single node where OpenMPI could get by using self mechanism).

Please add ssh client to the container - this should nip the problem at the bud.

osallou commented 3 years ago

Hi, This container is build from bioconda package, it extra packages are needed to run, issye should be created there (though ssh is not directly used by tool here but its mpi setup...)

Thanks

lgorenstein commented 3 years ago

Thank you Olivier, I have created an issue there.

This is a bit of a tough call (I suspect it is almost expected that tools use the host's ssh client for everything, so no need to install one into a conda environment... while inside a container it becomes a requirement). Almost like a special handling exception may be needed for all MPI-based tools ("if conda recipe calls for an MPI, force-add ssh into the container")?

osallou commented 3 years ago

Hi you have needs such as this and don't have time waiting for a fix, or just want to try, you can also create singularity image (or docker image, supported by singularity as docker is oci standard compliant) extending a conda base image (the FROM in dockerfile) and installing conda related package + required package.

Something like, for docker:

FROM miniconda RUN conda install xxx RUN apt-get update && apt-get install -y openssh

lgorenstein commented 3 years ago

Thanks, I'll give it a try.