From 9e1757be48d408800361f90e8480e593d5674a6b Mon Sep 17 00:00:00 2001
From: Alex Fikl <alexfikl@gmail.com>
Date: Wed, 7 Mar 2018 17:20:28 -0600
Subject: [PATCH] p2p: silence WriteRaceCondition warnings

---
 sumpy/p2p.py |  5 +++--
 sumpy/qbx.py | 53 ++++++++++++++++++++++++++--------------------------
 2 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/sumpy/p2p.py b/sumpy/p2p.py
index 9e26e8e6..2c5d9189 100644
--- a/sumpy/p2p.py
+++ b/sumpy/p2p.py
@@ -58,7 +58,7 @@ Particle-to-particle
 class P2PBase(KernelComputation, KernelCacheWrapper):
     def __init__(self, ctx, kernels, exclude_self, strength_usage=None,
             value_dtypes=None,
-            options=[], name="p2p", device=None):
+            options=[], name=None, device=None):
         """
         :arg kernels: list of :class:`sumpy.kernel.Kernel` instances
         :arg strength_usage: A list of integers indicating which expression
@@ -343,7 +343,7 @@ class P2PMatrixBlockGenerator(P2PBase):
             + ["""
                         result_{i}[tgtstart + itgt, srcstart + isrc] = \
                             knl_{i}_scaling * pair_result_{i} \
-                                {{inames=irange}}
+                                {{id_prefix=write_p2p,inames=irange}}
                 """.format(i=iknl)
                 for iknl in range(len(self.kernels))]
             + ["""
@@ -352,6 +352,7 @@ class P2PMatrixBlockGenerator(P2PBase):
             """],
             arguments,
             assumptions="nranges>=1",
+            silenced_warnings="write_race(write_p2p*)",
             name=self.name,
             fixed_parameters=dict(dim=self.dim),
             lang_version=MOST_RECENT_LANGUAGE_VERSION)
diff --git a/sumpy/qbx.py b/sumpy/qbx.py
index d91d3a11..f0c35174 100644
--- a/sumpy/qbx.py
+++ b/sumpy/qbx.py
@@ -88,7 +88,7 @@ def expand(expansion_nr, sac, expansion, avec, bvec):
 class LayerPotentialBase(KernelComputation, KernelCacheWrapper):
     def __init__(self, ctx, expansions, strength_usage=None,
             value_dtypes=None,
-            options=[], name="layerpot", device=None):
+            options=[], name=None, device=None):
         KernelComputation.__init__(self, ctx, expansions, strength_usage,
                 value_dtypes,
                 name, options, device)
@@ -206,30 +206,30 @@ class LayerPotential(LayerPotentialBase):
             for i, dtype in enumerate(self.value_dtypes)])
 
         loopy_knl = lp.make_kernel([
-                "{[itgt]: 0 <= itgt < ntargets}",
-                "{[isrc]: 0 <= isrc < nsources}",
-                "{[idim]: 0 <= idim < dim}"
-                ],
-                self.get_kernel_scaling_assignments()
-                + ["for itgt, isrc"]
-                + ["<> a[idim] = center[idim, itgt] - src[idim, isrc] {dup=idim}"]
-                + ["<> b[idim] = tgt[idim, itgt] - center[idim, itgt] {dup=idim}"]
-                + ["<> rscale = expansion_radii[itgt]"]
-                + loopy_insns + kernel_exprs
-                + ["""
-                    result_{i}[itgt] = knl_{i}_scaling * \
-                        simul_reduce(sum, isrc, pair_result_{i}) \
-                            {{id_prefix=write_lpot,inames=itgt}}
-                    """.format(i=iknl)
-                    for iknl in range(len(self.expansions))]
-                + ["end"],
-                arguments,
-                name=self.name,
-                assumptions="ntargets>=1 and nsources>=1",
-                default_offset=lp.auto,
-                silenced_warnings="write_race(write_lpot*)",
-                fixed_parameters=dict(dim=self.dim),
-                lang_version=MOST_RECENT_LANGUAGE_VERSION)
+            "{[itgt]: 0 <= itgt < ntargets}",
+            "{[isrc]: 0 <= isrc < nsources}",
+            "{[idim]: 0 <= idim < dim}"
+            ],
+            self.get_kernel_scaling_assignments()
+            + ["for itgt, isrc"]
+            + ["<> a[idim] = center[idim, itgt] - src[idim, isrc] {dup=idim}"]
+            + ["<> b[idim] = tgt[idim, itgt] - center[idim, itgt] {dup=idim}"]
+            + ["<> rscale = expansion_radii[itgt]"]
+            + loopy_insns + kernel_exprs
+            + ["""
+                result_{i}[itgt] = knl_{i}_scaling * \
+                    simul_reduce(sum, isrc, pair_result_{i}) \
+                        {{id_prefix=write_lpot,inames=itgt}}
+                """.format(i=iknl)
+                for iknl in range(len(self.expansions))]
+            + ["end"],
+            arguments,
+            name=self.name,
+            assumptions="ntargets>=1 and nsources>=1",
+            default_offset=lp.auto,
+            silenced_warnings="write_race(write_lpot*)",
+            fixed_parameters=dict(dim=self.dim),
+            lang_version=MOST_RECENT_LANGUAGE_VERSION)
 
         loopy_knl = lp.tag_inames(loopy_knl, "idim*:unr")
         for expn in self.expansions:
@@ -370,7 +370,7 @@ class LayerPotentialMatrixBlockGenerator(LayerPotentialBase):
             + ["""
                     result_{i}[tgtstart + itgt, srcstart + isrc] = \
                         knl_{i}_scaling * pair_result_{i} \
-                            {{inames=irange}}
+                            {{id_prefix=write_lpot,inames=irange}}
                 """.format(i=iknl)
                 for iknl in range(len(self.expansions))]
             + ["""
@@ -381,6 +381,7 @@ class LayerPotentialMatrixBlockGenerator(LayerPotentialBase):
             name=self.name,
             assumptions="nranges>=1",
             default_offset=lp.auto,
+            silenced_warnings="write_race(write_lpot*)",
             fixed_parameters=dict(dim=self.dim),
             lang_version=MOST_RECENT_LANGUAGE_VERSION)
 
-- 
GitLab