Commit 1900dae9 authored by Antti Puisto's avatar Antti Puisto

Conflicts fixed

parents a7f22bed d29d636a
Pipeline #5222 passed with stages
in 1 minute and 42 seconds
......@@ -86,6 +86,19 @@ The ESDW in Lausanne in February 2018 was the starting point for the modules bel
:maxdepth: 1
./modules/esl-bundle/readme
./modules/ELPA_easyblock/readme
ESDW Dublin 2019
-----------------
The ESDW in Dublin in January 2019 was the starting point for the modules below.
.. toctree::
:glob:
:maxdepth: 1
./modules/esl-easyconfigs/readme
Other Modules
-------------
......
.. sidebar:: Software Technical Information
Name
EasyBuild
Language
Python
Licence
`GPL-2.0 <https://opensource.org/licenses/GPL-2.0>`_
Documentation Tool
ReST_
Application Documentation
https://easybuild.readthedocs.io
Relevant Training Material
See documentation
Software Module Developed by
Micael Oliveira
.. In the next line you have the name of how this module will be referenced in the main documentation (which you can
reference, in this case, as ":ref:`example`"). You *MUST* change the reference below from "example" to something
unique otherwise you will cause cross-referencing errors. The reference must come right before the heading for the
reference to work (so don't insert a comment between).
.. _elpa_easyblock:
###############################
Add ELPA easyblock to EasyBuild
###############################
.. Let's add a local table of contents to help people navigate the page
.. contents:: :local:
.. Add an abstract for a *general* audience here. Write a few lines that explains the "helicopter view" of why you are
creating this module. For example, you might say that "This module is a stepping stone to incorporating XXXX effects
into YYYY process, which in turn should allow ZZZZ to be simulated. If successful, this could make it possible to
produce compound AAAA while avoiding expensive process BBBB and CCCC."
EasyBuild is used by a number of large HPC sites and integrating targeted support for ELPA ensures that those sites
use optimally built versions of ELPA.
Purpose of Module
_________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
Automate the selection of appropriate configuration flags for ELPA within EasyBuild depending on the type of CPU and available features.
Include additional options as appropriate. Build single and double precision versions of ELPA and also ensure it is linked against the expected version of the linear algebra libraries.
Background Information
______________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
EasyBuild is a software build and installation framework that allows you to manage (scientific) software on High
Performance Computing (HPC) systems in an efficient way. Full details on can be found in the
`EasyBuild documentation <https://easybuild.readthedocs.io/en/latest/>`_.
EasyBuild already had limited support for ELPA, this module allows for automated hardware specific configuration and optimisations.
Building and Testing
____________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
To build the software requires EasyBuild (see
`installation instructions for EasyBuild here <https://easybuild.readthedocs.io/en/latest/Installation.html>`_) and an
example build command would be:
::
eb ELPA-2018.11.001-intel-2019a.eb
Source Code
___________
.. Notice the syntax of a URL reference below `Text <URL>`_ the backticks matter!
There are two relevant Pull Requests in the main EasyBuild repositories:
* https://github.com/easybuilders/easybuild-easyblocks/pull/1621
* https://github.com/easybuilders/easybuild-easyconfigs/pull/8360
.. Here are the URL references used (which is alternative method to the one described above)
.. _ReST: http://www.sphinx-doc.org/en/stable/rest.html
.. _Sphinx: http://www.sphinx-doc.org/en/stable/markup/index.html
.. _esl-easyconfigs:
###############
ESL Easyconfigs
###############
.. sidebar:: Software Technical Information
Language
The easyconfigs are written in Python.
Licence
The building framework is distributed under the `GPL <https://opensource.org/licenses/gpl-license>`_.
For the licenses used in the different modules included in the Bundle, please check the corresponding documentation.
Documentation Tool
ReStructuredText
Application Documentation
`README <https://gitlab.com/ElectronicStructureLibrary/esl-easyconfigs/blob/master/Readme.rst>`_
Relevant Training Material
Not currently available.
Software Module Developed by
The ESL Easyconfigs was created by Micael Oliveira, Yann Pouillon and Alin Marin Elena.
.. contents:: :local:
The ESL Easyconfigs aims at providing for all the `CECAM Electronic
Structure Library <http://esl.cecam.org>`_ modules and their dependencies
easybuild easyconfigs to allow easy installaiton on supercomputers around
the world that use EasyBuild package manager.
Purpose of Module
_________________
The ESL Easyconfig is a collection of Easybuild easyconfigs
that allow to easily build on a supercomputer all the libraries and utilities broadly
used in electronic structure calculations, put together to make their
use easier by researchers and scientific software developers. It
includes a set of recipes for building the libraries and their dependencies helping users,
developers and packagers in obtaining a working installation of complex combinations of
software packages without having to track the dependencies themselves.
We are aiming at providing the recipes up to date for two of the most common toolchains
foss and intel. Once considered mature enough the recipes will be upstreamed to EasyBuild
official catalogue.
Installation
____________
One needs to install firstly `Easybuild`__ by following the preferred instructions
To install the full set of ESL modules and their dependencies for foss toolchain version
2019a (latest release at time of wrtiing) one needs to do
.. code-block:: bash
eb easyconfigs/e/esl-bundle/esl-bundle-0.3.1-foss-2019a.eb -r .
One shall note that in organizing the files the easyconfig recipes and their needed patches
we follow the same convention as EasyBuild itself.
Source Code
___________
The source code is available from the `Gitlab`__ under the `esl-easyconfigs`__
project. The ESL Bundle directory can be found `here`__.
.. __: EasyBuild https://easybuild.readthedocs.io
.. __: https://gitlab.com
.. __: https://gitlab.com/ElectronicStructureLibrary/esl-easyconfigs
.. __: https://gitlab.com/ElectronicStructureLibrary/esl-easyconfigs/tree/master
.. In ReStructured Text (ReST) indentation and spacing are very important (it is how ReST knows what to do with your
document). For ReST to understand what you intend and to render it correctly please to keep the structure of this
template. Make sure that any time you use ReST syntax (such as for ".. sidebar::" below), it needs to be preceded
and followed by white space (if you see warnings when this file is built they this is a common origin for problems).
.. We allow the template to be standalone, so that the library maintainers add it in the right place
.. Firstly, let's add technical info as a sidebar and allow text below to wrap around it. This list is a work in
progress, please help us improve it. We use *definition lists* of ReST_ to make this readable.
.. sidebar:: Software Technical Information
Name
......@@ -31,11 +21,12 @@
Software Module Developed by
Rene Halver
Polymer melt test is provided by
Dr. Horacio V. Guzman
Module Committed by
Dr. Horacio V. Guzman
.. In the next line you have the name of how this module will be referenced in the main documentation (which you can
reference, in this case, as ":ref:`ALL_example`"). You *MUST* change the reference below from "ALL_method_example"
to something unique otherwise you will cause cross-referencing errors. The reference must come right before the
heading for the reference to work (so don't insert a comment between).
.. _ALL_tensor_method:
......@@ -43,54 +34,64 @@
ALL Tensor-Product method
#########################
.. Let's add a local table of contents to help people navigate the page
.. contents:: :local:
.. Add an abstract for a *general* audience here. Write a few lines that explains the "helicopter view" of why this
module was are created.
The A Load Balancing Library (ALL) library aims to provide an easy way to include dynamic domain-based load balancing
A Load-Balancing Library (ALL) library aims to provide an easy and portable way to include dynamic domain-based load balancing
into particle based simulation codes. The library is developed in the Simulation Laboratory Molecular Systems of the
Juelich Supercomputing Centre at Forschungszentrum Juelich.
Purpose of Module
_________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
This module provides an additional method to the ALL library, up-to-date descriptions of the methods in the library can
This module provides an additional method to the `ALL library <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing>`_ , up-to-date descriptions of the methods in the library can
be found in the `ALL README file <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/blob/master/README.md>`_.
For the Tensor-Product method, the work on all processes is reduced over the cartesian planes in the systems. This work
For the Tensor-Product method, the work on all processes (subdomains) is reduced over the cartesian planes in the systems. This work
is then equalized by adjusting the borders of the cartesian planes.
Background Information
______________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
See :ref:`ALL_background` for details.
Building and Testing
____________________
.. Keep the helper text below around in your module by just adding ".. " in front of it, which turns it into a comment
ALL uses the `CMake <https://cmake.org/runningcmake/>`_ build system, specific build and installation requirements can
be found in the `ALL README file <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/blob/master/README.md>`_.
**Need to provide information on how to test the particular method here.**
There are 3 tests of available for the Tensor-Product method in the `ALL GitLab repository examples <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/tree/master/example>`_ . Namely: (1) Simple Wye-shape biosystem; (2) Heterogeneous polymer melt and (3) A rotated version of the Wye-shaped biosystem. They can be run by executing the commands below:
.. code:: bash
export ALL_INSTALLATION=/path/to/my/loadbalancing/install
cmake .. -DCMAKE_INSTALL_PREFIX=$ALL_INSTALLATION -DCM_ALL_FORTRAN=ON
make -j
make install
cd example/jube/
ln -s $ALL_INSTALLATION/bin/ALL_test
# JUBE must be available in the environment
jube run ALL_benchmark.xml --tag Polymer --type 1
Within `ALL_benchmark.xml <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/blob/refactor/example/jube/ALL_benchmark.xml>`_ you can find different options depending on the method and test you would like to run. For example the tests can be chosen by the ``--tag`` and using:
1. ``Y``,
2. ``Polymer``
3. ``rot_Y``
In addition, the ``--type`` flag is used to choose the method 1 for the Tensor Product. Note that the second example is the most illustrative and hence recommended example to understand how the borders of the cartesian planes are adjusted.
Source Code
___________
.. Notice the syntax of a URL reference below `Text <URL>`_ the backticks matter!
The implementation of the Tensor-Product method in ALL can be found in `ALL_Tensor.hpp <https://gitlab.version.fz-juelich.de/SLMS/loadbalancing/blob/master/include/ALL_Tensor.hpp>`_.
The source code to the ALL library is available as a git repository at https://gitlab.version.fz-juelich.de/SLMS/loadbalancing . To obtain a copy of the repository you can use
.. code:: bash
git clone https://gitlab.version.fz-juelich.de/SLMS/loadbalancing.git
**Here link the source code *that is relevant for the module*. If you are using Github or GitLab and the `Gitflow
Workflow <https://www.atlassian.com/git/tutorials/comparing-workflows#gitflow-workflow>`_ you can point to your feature
branch. Linking to your pull/merge requests is even better. Otherwise you can link to the explicit commits or locations
in the source code.**
However, please note that the source code is currently under embargo until an associated paper is published, if you would like to be obtain a copy of the code, please contact Prof. Godehard Sutmann at ``g.sutmann@fz-juelich.de``.
.. _ReST: http://www.sphinx-doc.org/en/stable/rest.html
.. _Sphinx: http://www.sphinx-doc.org/en/stable/markup/index.html
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment