From 4a31f84b83a6aff7de20c22b967dd4b272fc9c90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kl=C3=B6ckner?= Date: Tue, 17 Nov 2020 16:17:02 -0600 Subject: [PATCH 1/3] Github Conda CI: Run with pytest --- .github/workflows/ci.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 89ca1c5b1..b8060d269 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,12 +30,15 @@ jobs: - name: "Main Script" run: | sudo apt update - sudo apt install octave + sudo apt install octave openmpi-bin libopenmpi-dev CONDA_ENVIRONMENT=.test-conda-env-py3.yml export MPLBACKEND=Agg - curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/build-and-test-py-project-within-miniconda.sh - . ./build-and-test-py-project-within-miniconda.sh + curl -L -O -k https://gitlab.tiker.net/inducer/ci-support/raw/master/ci-support.sh + . ./ci-support.sh + build_py_project_in_conda_env + with_echo python -m pip install mpi4py + test_py_project firedrake: name: Pytest Firedrake From fae92b8c14f6d6f591e8da8ca6876c62cca31127 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 17 Nov 2020 19:10:14 -0600 Subject: [PATCH 2/3] L2ProjectionInverseDiscretizationConnection: Use Vandermonde to avoid https://github.com/inducer/loopy/pull/174 --- .../discretization/connection/projection.py | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/meshmode/discretization/connection/projection.py b/meshmode/discretization/connection/projection.py index 85fe1e376..193cd2a77 100644 --- a/meshmode/discretization/connection/projection.py +++ b/meshmode/discretization/connection/projection.py @@ -165,16 +165,16 @@ def kproj(): def keval(): return make_loopy_program([ "{[iel]: 0 <= iel < nelements}", - "{[idof]: 0 <= idof < n_to_nodes}" + "{[idof]: 0 <= idof < n_to_nodes}", + "{[ibasis]: 0 <= ibasis < n_to_nodes}" ], """ result[iel, idof] = result[iel, idof] + \ - coefficients[iel, ibasis] * basis[idof] + sum(ibasis, vdm[idof, ibasis] * coefficients[iel, ibasis]) """, [ lp.GlobalArg("coefficients", None, shape=("nelements", "n_to_nodes")), - lp.ValueArg("ibasis", np.int32), "..." ], name="conn_evaluate_knl") @@ -210,16 +210,13 @@ def keval(): # evaluate at unit_nodes to get the vector on to_discr result = self.to_discr.zeros(actx, dtype=ary.entry_dtype) for igrp, grp in enumerate(self.to_discr.groups): - for ibasis, basis_fn in enumerate(grp.basis()): - basis = actx.from_numpy( - basis_fn(grp.unit_nodes).flatten()) - - actx.call_loopy( - keval(), - ibasis=ibasis, - result=result[grp.index], - basis=basis, - coefficients=c[grp.index]) + from modepy import vandermonde + vdm = actx.from_numpy(vandermonde(grp.basis(), grp.unit_nodes)) + actx.call_loopy( + keval(), + result=result[grp.index], + vdm=vdm, + coefficients=c[grp.index]) return result From 6d815e59fa25aec5bf846d9ed5bb719763c654d7 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 17 Nov 2020 19:44:34 -0600 Subject: [PATCH 3/3] Force use of libhwloc 1 with Conda for Github CI --- .test-conda-env-py3.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.test-conda-env-py3.yml b/.test-conda-env-py3.yml index 5da5fe79d..35db923fb 100644 --- a/.test-conda-env-py3.yml +++ b/.test-conda-env-py3.yml @@ -7,6 +7,7 @@ dependencies: - python=3 - git - numpy +- libhwloc=1 - pocl - mako - pyopencl