diff --git a/doc/index.rst b/doc/index.rst index df2e23d15fdaee2dabd519200783cea89c2d46cd..a20ec5093527240204a0da00b19b4188f08317c2 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -9,7 +9,9 @@ Welcome to grudge's documentation! Contents: .. toctree:: - :maxdepth: 2 + :maxdepth: 2 + + misc @@ -19,4 +21,3 @@ Indices and tables * :ref:`genindex` * :ref:`modindex` * :ref:`search` - diff --git a/doc/misc.rst b/doc/misc.rst index edbc1dbfe15261bbdcc6b8712d5378b166cd841e..5dcfbcedadad89aaa52c5ff2880b473662838dd4 100644 --- a/doc/misc.rst +++ b/doc/misc.rst @@ -3,28 +3,83 @@ Installation ============ -This command should install :mod:`grudge`:: +Installing :mod:`grudge` +------------------------ - pip install grudge +This set of instructions is intended for 64-bit Linux computers. +MacOS support is in the works. -(Note the extra "."!) +#. Make sure your system has the basics to build software. -You may need to run this with :command:`sudo`. -If you don't already have `pip <https://pypi.python.org/pypi/pip>`_, -run this beforehand:: + On Debian derivatives (Ubuntu and many more), + installing ``build-essential`` should do the trick. - curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py - python get-pip.py + Everywhere else, just making sure you have the ``g++`` package should be + enough. -For a more manual installation, `download the source -<http://pypi.python.org/pypi/grudge>`_, unpack it, and say:: +#. Installing `miniconda for Python 3 on 64-bit Linux <https://conda.io/miniconda.html>`_. - python setup.py install +#. ``export CONDA=/WHERE/YOU/INSTALLED/miniconda3`` -You may also clone its git repository:: + If you accepted the default location, this should work: - git clone --recursive git://github.com/inducer/grudge - git clone --recursive http://git.tiker.net/trees/grudge.git + ``export CONDA=$HOME/miniconda3`` + +#. ``$CONDA/bin/conda create -n dgfem`` + +#. ``source $CONDA/bin/activate dgfem`` + +#. ``conda config --add channels conda-forge`` + +#. ``conda install git pip pocl islpy pyopencl`` + +#. Type the following command:: + + hash -r; for i in pymbolic cgen genpy modepy pyvisfile loopy meshmode dagrt leap grudge; do python -m pip install git+https://gitlab.tiker.net/inducer/$i.git; done + +Next time you want to use `grudge`, just run the following command:: + + source /WHERE/YOU/INSTALLED/miniconda3/bin/activate dgfem + +You may also like to add this to a startup file (like :file:`$HOME/.bashrc`) or create an alias for it. + +After this, you should be able to run the `tests <https://gitlab.tiker.net/inducer/grudge/tree/master/test>`_ +or `examples <https://gitlab.tiker.net/inducer/grudge/tree/master/examples>`_. + +Troubleshooting the Installation +-------------------------------- + +/usr/bin/ld: cannot find -lstdc++ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Try:: + + sudo apt-get install libstdc++-6-dev + +to install the missing C++ development package. + +No CL platforms found/unknown error -1001 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you get:: + + pyopencl.cffi_cl.LogicError: clGetPlatformIDs failed: <unknown error -1001> + +try:: + + conda update ocl-icd pocl + +(This indicates that the OpenCL driver loader didn't find any drivers, or the +drivers were themselves missing dependencies.) + +Assertion 'error == 0' +~~~~~~~~~~~~~~~~~~~~~~~ + +If you get:: + + /opt/conda/conda-bld/home_1484016200338/work/pocl-0.13/lib/CL/devices/common.c:108: + llvm_codegen: Assertion 'error == 0 ' failed. Aborted (core dumped) + +then you're likely out of memory. User-visible Changes ====================