# KeyError on 3D case running with WSL Ubuntu openMP

**URL:** <https://pyfr.discourse.group/t/keyerror-on-3d-case-running-with-wsl-ubuntu-openmp/404>\
**Category:** Errors\
**Tags:** windows, openmp\
**Created:** [27 May 2021 04:26 UTC](https://pyfr.discourse.group/t/keyerror-on-3d-case-running-with-wsl-ubuntu-openmp/404 "2021-05-27T04:26:26Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![WillT](https://avatars.discourse-cdn.com/v4/letter/w/bc79bd/32.png) [@WillT](https://pyfr.discourse.group/u/WillT)\
**Post date:** [28 May 2021 03:26 UTC](https://pyfr.discourse.group/t/keyerror-on-3d-case-running-with-wsl-ubuntu-openmp/404/9 "2021-05-28T03:26:42Z")

</div>

At least for pyfr v1.12 you can manually set the cutoff number of non-zeros for gimmik with `gimmik-max-nnz = 512` in the openmp backend section. Although this will have an effect on performance. If you have a look at the gimmik paper you can see how the performance changes with matrix size and sparsity.

The libxsmm library can also be an option, see the [PyFR OpenMP documentation](https://pyfr.readthedocs.io/en/latest/user_guide.html#backend-openmp) and the [Libxsmm git](https://github.com/hfp/libxsmm).

PyFR will also fall back on a blas gemm if the operators are too dense or too big. You may want to check that you have a blas library in your library path. On WSL I think you can do `sudo apt install libblas-dev` for a quick install, or you can compile your own, or if you have it Intel’s MKL can be a more performant option.

---

_[View the full topic](https://pyfr.discourse.group/t/keyerror-on-3d-case-running-with-wsl-ubuntu-openmp/404)._
