Docker is not an a priori right way to use FEniCS. It is just one way.
On Thu, 14 Dec 2017 08:23:41 -0800 (PST)
davidson <
mao.s...@gmail.com> wrote:
> Hi all,
>
> I am a beginner in using FEniCS and I used to install all the
> packages using conda (I am using a mac). Soon I realize that
> sometimes I'll have to go parallel in my research project and solvers
> such as superlu_dist and mumps are not readily available in it. From
> all the answers available on the internet, it seems like docker is
> the way out of this. I just have some concerns over this:
>
> 1. it seems like if I build FEniCS within docker, I will not be able
> to use something like conda, where I can add and delete packages
> without worrying about their dependencies? so for example if I were
> to use Spyder, then I'll have to install it from the source and build
> an image for it? Or, is there a way that we can make these two guys
> compatible?
FEniCS Docker images have Ubuntu inside. So you can very easily install
in the container whatever is packaged by Ubuntu. Many packages from
Python universe can also be installed easily by Pip.
https://pythonhosted.org/spyder/installation.html#installing-on-linux
>
> 2. since docker builds on some virtual environment, I am not sure if
> I am allocating some limited space from my computer to the container?
> I am asking this because I am worried that this might affect the
> performance of FEniCS.
No. Since Docker is based on operating system native virtualization (on
Linux, Windows and MacOS) there is essentially no performance penalty.
>
> 3. if I am going to run FEniCS on a cluster (linux), so does that
> mean I'll also have to first install docker on that machine and run
> from the container? I'll not be able to use sudo apt-get because I am
> not the administrator there.
Docker images can be used on cluster using different runtime, e.g.
Singularity or Shifter. Native Docker runtime is not suitable for
clusters, mainly due to privilige escalation. The community has some
experience with running FEniCS images using Singularity but so far it
has rough edges, see
https://bitbucket.org/fenics-project/docker/issues/60
But note that the most standard and recommendable solution in the
present times is to compile FEniCS from source for serious usage on
clusters.
>
> I am really new to these stuff and might have asked some naive
> questions. But anyhow, if docker is the right way to use it, could
> you please point me to some step-by-step tutorials that deal with the
> real basics of it? I am having a hard time understanding how it works
> and what can I do with it.
There is a really nice tutorial for using FEniCS with Docker:
http://fenics-containers.readthedocs.org/en/latest/
Jan
>
> thanks a lot!!
>