[yt-svn] commit/yt: 6 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed Mar 30 15:16:18 PDT 2016


6 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/0078c0e0d9ed/
Changeset:   0078c0e0d9ed
Branch:      yt
User:        ngoldbaum
Date:        2016-03-29 16:06:56+00:00
Summary:     Handle KeyboardInterrupt in volume rendering cython loop
Affected #:  1 file

diff -r b6dad5b69998cff732a5c3ea7847a4b01092ffc8 -r 0078c0e0d9eda590e64c382421064f29fea0124d yt/utilities/lib/grid_traversal.pyx
--- a/yt/utilities/lib/grid_traversal.pyx
+++ b/yt/utilities/lib/grid_traversal.pyx
@@ -31,6 +31,8 @@
 from cython.parallel import prange, parallel, threadid
 from vec3_ops cimport dot, subtract, L2_norm, fma
 
+from cpython.exc cimport PyErr_CheckSignals
+
 DEF Nch = 4
 
 cdef class PartitionedGrid:
@@ -476,6 +478,8 @@
                 max_t = fclip(im.zbuffer[vi, vj], 0.0, 1.0)
                 walk_volume(vc, v_pos, v_dir, self.sampler,
                             (<void *> idata), NULL, max_t)
+                with gil:
+                    PyErr_CheckSignals()
                 for i in range(Nch):
                     im.image[vi, vj, i] = idata.rgba[i]
             free(idata)


https://bitbucket.org/yt_analysis/yt/commits/6ed945328a03/
Changeset:   6ed945328a03
Branch:      yt
User:        atmyers
Date:        2016-03-29 19:31:18+00:00
Summary:     only check for error signals every so often in the ray walking loop.
Affected #:  1 file

diff -r 0078c0e0d9eda590e64c382421064f29fea0124d -r 6ed945328a03731b810d8d4c24a5372fa2832011 yt/utilities/lib/grid_traversal.pyx
--- a/yt/utilities/lib/grid_traversal.pyx
+++ b/yt/utilities/lib/grid_traversal.pyx
@@ -16,6 +16,7 @@
 import numpy as np
 cimport numpy as np
 cimport cython
+cimport openmp
 #cimport healpix_interface
 cdef extern from "limits.h":
     cdef int SHRT_MAX
@@ -460,14 +461,17 @@
         size = nx * ny
         cdef ImageAccumulator *idata
         cdef np.float64_t width[3]
+        cdef int chunksize = 100
+        cdef int threads
         for i in range(3):
             width[i] = self.width[i]
         with nogil, parallel(num_threads = num_threads):
+            threads = openmp.omp_get_num_threads()
             idata = <ImageAccumulator *> malloc(sizeof(ImageAccumulator))
             idata.supp_data = self.supp_data
             v_pos = <np.float64_t *> malloc(3 * sizeof(np.float64_t))
             v_dir = <np.float64_t *> malloc(3 * sizeof(np.float64_t))
-            for j in prange(size, schedule="static", chunksize=100):
+            for j in prange(size, schedule="static", chunksize=chunksize):
                 vj = j % ny
                 vi = (j - vj) / ny + iter[0]
                 vj = vj + iter[2]
@@ -478,8 +482,9 @@
                 max_t = fclip(im.zbuffer[vi, vj], 0.0, 1.0)
                 walk_volume(vc, v_pos, v_dir, self.sampler,
                             (<void *> idata), NULL, max_t)
-                with gil:
-                    PyErr_CheckSignals()
+                if j % (threads*chunksize) == 0:
+                    with gil:
+                        PyErr_CheckSignals()
                 for i in range(Nch):
                     im.image[vi, vj, i] = idata.rgba[i]
             free(idata)


https://bitbucket.org/yt_analysis/yt/commits/0082760bdf0c/
Changeset:   0082760bdf0c
Branch:      yt
User:        ngoldbaum
Date:        2016-03-29 20:07:28+00:00
Summary:     Remove dependency on openmp
Affected #:  1 file

diff -r 6ed945328a03731b810d8d4c24a5372fa2832011 -r 0082760bdf0cff3a03788dcc2950d249a51918a0 yt/utilities/lib/grid_traversal.pyx
--- a/yt/utilities/lib/grid_traversal.pyx
+++ b/yt/utilities/lib/grid_traversal.pyx
@@ -16,7 +16,6 @@
 import numpy as np
 cimport numpy as np
 cimport cython
-cimport openmp
 #cimport healpix_interface
 cdef extern from "limits.h":
     cdef int SHRT_MAX
@@ -462,11 +461,9 @@
         cdef ImageAccumulator *idata
         cdef np.float64_t width[3]
         cdef int chunksize = 100
-        cdef int threads
         for i in range(3):
             width[i] = self.width[i]
         with nogil, parallel(num_threads = num_threads):
-            threads = openmp.omp_get_num_threads()
             idata = <ImageAccumulator *> malloc(sizeof(ImageAccumulator))
             idata.supp_data = self.supp_data
             v_pos = <np.float64_t *> malloc(3 * sizeof(np.float64_t))
@@ -482,7 +479,7 @@
                 max_t = fclip(im.zbuffer[vi, vj], 0.0, 1.0)
                 walk_volume(vc, v_pos, v_dir, self.sampler,
                             (<void *> idata), NULL, max_t)
-                if j % (threads*chunksize) == 0:
+                if (j % chunksize) == 0:
                     with gil:
                         PyErr_CheckSignals()
                 for i in range(Nch):


https://bitbucket.org/yt_analysis/yt/commits/315fa3d6c5ab/
Changeset:   315fa3d6c5ab
Branch:      yt
User:        ngoldbaum
Date:        2016-03-29 20:10:30+00:00
Summary:     10*chunksize seems to be a good compromise on OSX
Affected #:  1 file

diff -r 0082760bdf0cff3a03788dcc2950d249a51918a0 -r 315fa3d6c5abd1446f6ecf5991dc9499a5f4f1f6 yt/utilities/lib/grid_traversal.pyx
--- a/yt/utilities/lib/grid_traversal.pyx
+++ b/yt/utilities/lib/grid_traversal.pyx
@@ -479,7 +479,7 @@
                 max_t = fclip(im.zbuffer[vi, vj], 0.0, 1.0)
                 walk_volume(vc, v_pos, v_dir, self.sampler,
                             (<void *> idata), NULL, max_t)
-                if (j % chunksize) == 0:
+                if (j % 10*chunksize) == 0:
                     with gil:
                         PyErr_CheckSignals()
                 for i in range(Nch):


https://bitbucket.org/yt_analysis/yt/commits/ba7e9b3b3fa4/
Changeset:   ba7e9b3b3fa4
Branch:      yt
User:        ngoldbaum
Date:        2016-03-29 20:12:45+00:00
Summary:     Add another set of brackets to make order of operations clearer.
Affected #:  1 file

diff -r 315fa3d6c5abd1446f6ecf5991dc9499a5f4f1f6 -r ba7e9b3b3fa44dba50e9627fd328878f9703e203 yt/utilities/lib/grid_traversal.pyx
--- a/yt/utilities/lib/grid_traversal.pyx
+++ b/yt/utilities/lib/grid_traversal.pyx
@@ -479,7 +479,7 @@
                 max_t = fclip(im.zbuffer[vi, vj], 0.0, 1.0)
                 walk_volume(vc, v_pos, v_dir, self.sampler,
                             (<void *> idata), NULL, max_t)
-                if (j % 10*chunksize) == 0:
+                if (j % (10*chunksize)) == 0:
                     with gil:
                         PyErr_CheckSignals()
                 for i in range(Nch):


https://bitbucket.org/yt_analysis/yt/commits/d923aa143295/
Changeset:   d923aa143295
Branch:      yt
User:        atmyers
Date:        2016-03-30 22:16:08+00:00
Summary:     Merged in ngoldbaum/yt (pull request #2094)

Handle KeyboardInterrupt in volume rendering cython loop
Affected #:  1 file

diff -r e376760e7ac426c9e47ff916655e60bc7ec78a2d -r d923aa143295f0ef48f3e9c87e70b1f21b82d530 yt/utilities/lib/grid_traversal.pyx
--- a/yt/utilities/lib/grid_traversal.pyx
+++ b/yt/utilities/lib/grid_traversal.pyx
@@ -31,6 +31,8 @@
 from cython.parallel import prange, parallel, threadid
 from vec3_ops cimport dot, subtract, L2_norm, fma
 
+from cpython.exc cimport PyErr_CheckSignals
+
 DEF Nch = 4
 
 cdef class PartitionedGrid:
@@ -458,6 +460,7 @@
         size = nx * ny
         cdef ImageAccumulator *idata
         cdef np.float64_t width[3]
+        cdef int chunksize = 100
         for i in range(3):
             width[i] = self.width[i]
         with nogil, parallel(num_threads = num_threads):
@@ -465,7 +468,7 @@
             idata.supp_data = self.supp_data
             v_pos = <np.float64_t *> malloc(3 * sizeof(np.float64_t))
             v_dir = <np.float64_t *> malloc(3 * sizeof(np.float64_t))
-            for j in prange(size, schedule="static", chunksize=100):
+            for j in prange(size, schedule="static", chunksize=chunksize):
                 vj = j % ny
                 vi = (j - vj) / ny + iter[0]
                 vj = vj + iter[2]
@@ -476,6 +479,9 @@
                 max_t = fclip(im.zbuffer[vi, vj], 0.0, 1.0)
                 walk_volume(vc, v_pos, v_dir, self.sampler,
                             (<void *> idata), NULL, max_t)
+                if (j % (10*chunksize)) == 0:
+                    with gil:
+                        PyErr_CheckSignals()
                 for i in range(Nch):
                     im.image[vi, vj, i] = idata.rgba[i]
             free(idata)

Repository URL: https://bitbucket.org/yt_analysis/yt/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-svn-spacepope.org/attachments/20160330/3b15151e/attachment.html>


More information about the yt-svn mailing list