Working repository for the FEniCS Google Summer of Code SIMD project. Most code can be found in the main/simd folder.
I perform most of the development on Windows using Docker. A longer introduction can be found on my blog but for a quick start, the following sections should provide enough information.
This repository provides a Dockerfile with all required components. In the root folder of the repository run
docker build -t simd-work .
or alternatively get it from the quay.io repository using
docker pull quay.io/w1th0utnam3/simd-work
then start container with
docker run -v [host path to repo]/fenics_work:/local/fenics_work -it simd-work /bin/bash
For development, the submodules in this repository (Dolfin-X, FFC-X, etc.) are mounted into the container and should be installed with pip
in editable mode. To allow this, some egg-info
folders have to be generated in the repositories. This has to be done once after first cloning this repository and is performed by the check_install.py
script:
docker run -v [host path to repo]/fenics_work:/local/fenics_work -it simd-work python3 /local/fenics_work/main/simd/check_install.py
On Ubuntu the default core file size limit is 0. Use
ulimit -c unlimited
to remove this restrictions. However this has to be rerun in every shell session. The core dumps will be located in the working directory. They can be inspected by launching
gdb <executable path> <core dump path>
followed by the bt
(backtrace) command inside gdb
. The command quit
can be used to exit gdb
.