On Thu, Nov 06, 2014 at 10:31:22AM -0600, Lizao Li wrote:
> Hi,
>
> I think "to install/build a useable FEniCS" breaks up to two steps:
>    1. Install dependencies (PETSc alike)
>    2. Install FEniCS packages
> From my experience, step 1 is hard while step 2 is more or less trivial.
> Thus the real question is how much FEniCS community should do to
> maintain installation receipes/documentations for non-FEniCS packages.
>
> For most students/researchers/developers, the ease of deployment and
> maintainence is the most important. Here I think a good solution is to
> put step 1 into a virtual machine image and let the user choose what to
> do with step 2. Here Jack, Garth, and I worked on this. You can find a
> working repo at:
>   https://bitbucket.org/garth-wells/fenics-virtual/branch/vagrant-docker
> This allows the user to choose to either use the binaries or build the
> stable/git version from source against the os inside the image. As
> maintainers, we only need to take care of step 1 for one version of one
> platform inside the VM (ubuntu in this case), which is easy.

How large is the overhead on Mac OS X compared to a native build?

> For people who need best possible performance on large clusters, it is
> unlikely that a nicely usable and scriptable solution exists because best
> performance means the solution is platform/hardware dependent. Indeed,
> if GCC+OpenMPI is used, the hand compiled thing will perform more or
> less the same as the VM images before. My experience with compiling
> optimized FEniCS was not good. For step 1, I did not find any good
> documentation for compiling PETSc/Trilinos with Intel compilers, MKL,
> platform/intel MPI. For step 2, I had to find a version of optimized compiler
> compatible with dolfin (due to C++11transition) and patch some MPI
> includes and cmake tests (depending on compiler and MPI used). Here I
> think a wiki-like site would certainly help. At least it offers a starting
> point.

I think this is why we need a collection of recipes that people can
use as starting points when building on different systems.

> It is tempting to think that a dorsal-like scripted system would work for
> most of the scenarios. From my experience, this is not the case. I am
> thinking about Dorsal, Sagemath, Anaconda, and many web services I used
> before. In the end, developers can only maintain it to work on one or a
> handful of supported popular linux flavors where better binary repos
> probably already exist. On a different linux flavor or a customized
> commercial *nix system most large clusters use, they tend to fail due to
> kernel/compiler version issues. Indeed, mature deployment system I know
> of are either for operating systems which have full control of their own base
> libraries (apt/rpm/pacman) or for server vendors who have full control of
> both the hardware and software (chef, puppet, ansible, possibly hashdist
> as well). For software developers, the only mature, robust, multi-platform
> deployment system I found is either VM or as hosted web application.

There seem to be many options floating around at the moment:

1. Binaries for stable versions, which we do have and which seem to work
   fine.

2. Virtual machines, which we do have but which are not advertised on
   the web page.

3. Dorsal which does the job for the platforms that happen to
   work. This is problematic since no one is actively maintaining it.

4. Different "home-made" solutions floating around. I've been using my
   own scripts for some time, which rely on Dorsal for part of the job
   and then followed by cmake.local for the final step.

I think we need to conclude on a "best practices"/official way to
install development versions of FEniCS that will satisfy all the
following perhaps conflicting goals: easy to find (on web page), easy
to follow, easy to maintain, always up to date, and most importantly
supported by all developers.

-- 
Anders



> On Thu, Nov 6, 2014 at 1:13 AM, Anders Logg <[email protected]> wrote:
>
>     Hi,
>
>     One thing I think is missing on our web page is a collection of good
>     installation recipes and, possibly, other FEniCS-related recipes.
>
>     We do have good binary packages, but instructions for building from
>     source could be better. Here are some issues I think we need to solve:
>
>     1. How do we want to continue to support Dorsal? Is anyone actively
>     maintaining it? Should it be the officially supported way to install
>     FEniCS from source on all platforms, including Mac?
>
>     2. The installation instructions on the web page are very static and
>     difficult to keep up-to-date, since it requires making a pull request
>     for the website Sphinx code, getting someone to apply the pull request
>     etc.
>
>     3. Is there a good alternative in the form of a collection of "FEniCS
>     recipes", to which anyone can contribute (perhaps wiki style), ideally
>     also in combination with some voting mechanism (thumbs up = works for
>     me) so that we may organically keep track of, say, the best way of
>     the day to build FEniCS on OS X.
>
>     Ideally, we would host this on fenicsproject.org, but perhaps there
>     are already existing web services that could be used?
>
>     4. Could those installation recipes be made scriptable? And then how
>     would this be different from Dorsal? I like Dorsal, but it seems not
>     everyone is on board with using Dorsal as the main/official way of
>     FEniCS installation.
>
>
>
>
>
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to