we need a script that hides all the gory docker/singularity details.
something like
feelppshell run -c [docker|singularity] <cmd>
without we would enter the docker|singularity shell.
This should be as simple as possible to run a Feel++ application. It would hide the details regarding mounting volumes, passing env variables.
Another feature would be that we wouldn't have to update the documentation each time we add some new docker|singularity features or environment variable to the command line
Here is what I propose:
run as --user=$(id -u) systematically
mount $home/feel to $home in docker
if necessary, install feel++ scripts to install, start and stop feel++ containers
default container is feelpp/feelpp-toolboxes
to install feel++ container do sh installFeelpp: it starts a container and call it after the latest release by default
to start using feel++ do sh startFeelpp : it exec the default feel++ container
to stop using feel++ do sh stopFeelpp : it stops and rm the default feel++ container
what is a Cloud link? in my mind, it is not very complicated what I propose. the objective is to simplify the command line. I fail to see currently what you are proposing.
if you look at the different tools (4fastsim, angiotk, ...) we develop, the docker command line can be quite/very long. Even I, I need to get reminded all the time of the command line. This is just good sense to simplify it.
Now, if you think you have something better to propose, feel free to discuss it here.
sure things like aws/ecs are on the roadmap for us at some point. But how about that https://aws.amazon.com/fr/ecs/pricing/? I don't see students or us paying for that in the near future (maybe I missed something).
Again, I fail to see why it is complicated and the maintenance burden regarding the feelpp container or whatever. It is just an encapsulation of the docker/singularity Feel++ command lines.
what I envision is the following steps for the beginner:
wget http://git.com/feelpp/feelpp/feelppsh
feelppsh run starts docker with feelpp/toolboxes by default and the user enters the container
We could do something fancy like
feelppsh run -np 4 feelpp_toolbox_cfd_2d --config-file=<url> run the 2D cfd toolbox on 4 processors where <url> points to an example or benchmark directory on, say, Github using #1121
then we would have an option to select the underlying container system and have the possibility to store the selection
I said amazon as an example as you can get 1year 750h computation with AWS free tier (there's REDHat/openshift too for example).
My problem is trying to hide container system under a unique command in the documentation.
These container (long) commands are often machine/env specific (e.g gpu driver, mount point, usage), so in my opinion creating a script is not a solution (But maybe ok for students).
But as long as it's clear in the documentation which container system we use, where to find containers, where to find official container system documentation, and an easy way to retrieve the original command hidden, it's ok for me.
PS: Good question for cling. It's a cmake and there was a shell script, but @vincentchabannes did some change in cmake, I've to check.
I moved this issue to v0.105.
I have a linux version running based on the linux docker image.
mac and windows needs to be supported as well and the documentation be updated
@prudhomm commented on Sat Mar 31 2018
we need a script that hides all the gory docker/singularity details. something like
without we would enter the docker|singularity shell.
This should be as simple as possible to run a Feel++ application. It would hide the details regarding mounting volumes, passing env variables.
Another feature would be that we wouldn't have to update the documentation each time we add some new docker|singularity features or environment variable to the command line
Here is what I propose:
$(id -u)
systematically$home/feel
to$home
in dockerfeelpp/feelpp-toolboxes
sh installFeelpp
: it starts a container and call it after the latest release by defaultsh startFeelpp
: it exec the default feel++ containersh stopFeelpp
: it stops and rm the default feel++ containerthe implementation is in https://github.com/feelpp/install
/cc @feelpp/mso4sc
@gdolle commented on Sat Mar 31 2018
We should wait next meeting and discuss it before implementing that @prudhomm @vincentchabannes @celineCQ . See also my point of view https://github.com/feelpp/book.feelpp.org/issues/48#issuecomment-377690325
@prudhomm commented on Sat Mar 31 2018
what is a Cloud link? in my mind, it is not very complicated what I propose. the objective is to simplify the command line. I fail to see currently what you are proposing. if you look at the different tools (4fastsim, angiotk, ...) we develop, the docker command line can be quite/very long. Even I, I need to get reminded all the time of the command line. This is just good sense to simplify it. Now, if you think you have something better to propose, feel free to discuss it here.
@gdolle commented on Sat Mar 31 2018
I give my thought there https://github.com/feelpp/book.feelpp.org/issues/48#issuecomment-377690325
PS: Note also that we had a feel++ shell env for cling already. It should rather be
feelcontainer
orfeelppimg
instead.@prudhomm commented on Sat Mar 31 2018
sure things like aws/ecs are on the roadmap for us at some point. But how about that https://aws.amazon.com/fr/ecs/pricing/? I don't see students or us paying for that in the near future (maybe I missed something). Again, I fail to see why it is complicated and the maintenance burden regarding the feelpp container or whatever. It is just an encapsulation of the docker/singularity Feel++ command lines.
@prudhomm commented on Sat Mar 31 2018
by the way @gdolle where is the code for the feel++ shell for cling?
@prudhomm commented on Sat Mar 31 2018
what I envision is the following steps for the beginner:
wget http://git.com/feelpp/feelpp/feelppsh
feelppsh run
startsdocker
withfeelpp/toolboxes
by default and the user enters the container We could do something fancy likefeelppsh run -np 4 feelpp_toolbox_cfd_2d --config-file=<url>
run the 2D cfd toolbox on 4 processors where<url>
points to an example or benchmark directory on, say, Github using #1121then we would have an option to select the underlying container system and have the possibility to store the selection
@gdolle commented on Sat Mar 31 2018
I said amazon as an example as you can get 1year 750h computation with AWS free tier (there's REDHat/openshift too for example).
My problem is trying to hide container system under a unique command in the documentation. These container (long) commands are often machine/env specific (e.g gpu driver, mount point, usage), so in my opinion creating a script is not a solution (But maybe ok for students). But as long as it's clear in the documentation which container system we use, where to find containers, where to find official container system documentation, and an easy way to retrieve the original command hidden, it's ok for me.
PS: Good question for cling. It's a cmake and there was a shell script, but @vincentchabannes did some change in cmake, I've to check.
@prudhomm commented on Mon Apr 23 2018
I have updated the description and provided an implementation that currently works nicely in linux (not mac or windows)