Hello community,

here is the log from the commit of package python3-numexpr for openSUSE:Factory 
checked in at 2016-07-21 08:09:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-numexpr (Old)
 and      /work/SRC/openSUSE:Factory/.python3-numexpr.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3-numexpr"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-numexpr/python3-numexpr.changes  
2016-06-19 11:08:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-numexpr.new/python3-numexpr.changes     
2016-07-21 08:09:53.000000000 +0200
@@ -1,0 +2,13 @@
+Sun Jul 17 17:19:00 UTC 2016 - [email protected]
+
+- update to version 2.6.1:
+  * Fixed a performance regression in some situations as consequence
+    of increasing too much the BLOCK_SIZE1 constant. After more
+    careful benchmarks (both in VML and non-VML modes), the value has
+    been set again to 1024 (down from 8192). The benchmarks have been
+    made with a relatively new processor (Intel Xeon E3-1245 v5 @
+    3.50GHz), so they should work well for a good range of processors
+    again.
+  * Added NetBSD support to CPU detection. Thanks to Thomas Klausner.
+
+-------------------------------------------------------------------

Old:
----
  numexpr-2.6.0.tar.gz

New:
----
  numexpr-2.6.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python3-numexpr.spec ++++++
--- /var/tmp/diff_new_pack.fUDc6h/_old  2016-07-21 08:09:54.000000000 +0200
+++ /var/tmp/diff_new_pack.fUDc6h/_new  2016-07-21 08:09:54.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python3-numexpr
-Version:        2.6.0
+Version:        2.6.1
 Release:        0
 Url:            https://github.com/pydata/numexpr
 Summary:        Fast numerical expression evaluator for NumPy

++++++ numexpr-2.6.0.tar.gz -> numexpr-2.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/ANNOUNCE.rst 
new/numexpr-2.6.1/ANNOUNCE.rst
--- old/numexpr-2.6.0/ANNOUNCE.rst      2016-06-01 13:53:04.000000000 +0200
+++ new/numexpr-2.6.1/ANNOUNCE.rst      2016-07-17 11:46:18.000000000 +0200
@@ -1,7 +1,26 @@
 =========================
- Announcing Numexpr 2.6.0
+ Announcing Numexpr 2.6.1
 =========================
 
+What's new
+==========
+
+This is a manintenance release that fixes a performance regression in
+some situations. More specifically, the BLOCK_SIZE1 constant has been
+set to 1024 (down from 8192). This allows for better cache utilization
+when there are many operands.  Fixes #221.
+
+Also, support for NetBSD has been added.  Thanks to Thomas Klausner.
+
+In case you want to know more in detail what has changed in this
+version, see:
+
+https://github.com/pydata/numexpr/blob/master/RELEASE_NOTES.rst
+
+
+What's Numexpr
+==============
+
 Numexpr is a fast numerical expression evaluator for NumPy.  With it,
 expressions that operate on arrays (like "3*a+4*b") are accelerated
 and use less memory than doing the same calculation in Python.
@@ -18,29 +37,6 @@
 easy-to-deploy, easy-to-use, computational engine for projects that
 don't want to adopt other solutions requiring more heavy dependencies.
 
-What's new
-==========
-
-This is a minor version bump because it introduces a new function.
-Also some minor fine tuning for recent CPUs has been done:
-
-- Introduced a new re_evaluate() function for re-evaluating the
-  previous executed array expression without any check.  This is meant
-  for accelerating loops that are re-evaluating the same expression
-  repeatedly without changing anything else than the operands.  If
-  unsure, use evaluate() which is safer.
-
-- The BLOCK_SIZE1 and BLOCK_SIZE2 constants have been re-checked in
-  order to find a value maximizing most of the benchmarks in bench/
-  directory.  The new values (8192 and 16 respectively) give somewhat
-  better results (~5%) overall.  The CPU used for fine tuning is a
-  relatively new Haswell processor (E3-1240 v3).
-
-In case you want to know more in detail what has changed in this
-version, see:
-
-https://github.com/pydata/numexpr/blob/master/RELEASE_NOTES.rst
-
 Where I can find Numexpr?
 =========================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/PKG-INFO new/numexpr-2.6.1/PKG-INFO
--- old/numexpr-2.6.0/PKG-INFO  2016-06-01 13:58:34.000000000 +0200
+++ new/numexpr-2.6.1/PKG-INFO  2016-07-17 11:51:33.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: numexpr
-Version: 2.6.0
+Version: 2.6.1
 Summary: Fast numerical expression evaluator for NumPy
 Home-page: https://github.com/pydata/numexpr
 Author: David M. Cooke, Francesc Alted and others
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/RELEASE_NOTES.rst 
new/numexpr-2.6.1/RELEASE_NOTES.rst
--- old/numexpr-2.6.0/RELEASE_NOTES.rst 2016-06-01 13:49:26.000000000 +0200
+++ new/numexpr-2.6.1/RELEASE_NOTES.rst 2016-07-15 19:25:19.000000000 +0200
@@ -2,6 +2,19 @@
  Release notes for Numexpr 2.6 series
 ======================================
 
+Changes from 2.6.0 to 2.6.1
+===========================
+
+- Fixed a performance regression in some situations as consequence of
+  increasing too much the BLOCK_SIZE1 constant.  After more careful
+  benchmarks (both in VML and non-VML modes), the value has been set
+  again to 1024 (down from 8192).  The benchmarks have been made with
+  a relatively new processor (Intel Xeon E3-1245 v5 @ 3.50GHz), so
+  they should work well for a good range of processors again.
+
+- Added NetBSD support to CPU detection.  Thanks to Thomas Klausner.
+
+
 Changes from 2.5.2 to 2.6.0
 ===========================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/bench/vml_timing2.py 
new/numexpr-2.6.1/bench/vml_timing2.py
--- old/numexpr-2.6.0/bench/vml_timing2.py      2016-05-01 14:13:01.000000000 
+0200
+++ new/numexpr-2.6.1/bench/vml_timing2.py      2016-07-15 19:25:19.000000000 
+0200
@@ -10,7 +10,7 @@
 import numexpr as ne
 from time import time
 
-N = 1e7 # higher value can cause segfault (on x86)
+N = int(5e7)
 
 x = np.linspace(0, 1, N)
 y = np.linspace(0, 1, N)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/bench/vml_timing3.py 
new/numexpr-2.6.1/bench/vml_timing3.py
--- old/numexpr-2.6.0/bench/vml_timing3.py      1970-01-01 01:00:00.000000000 
+0100
+++ new/numexpr-2.6.1/bench/vml_timing3.py      2016-07-15 19:25:19.000000000 
+0200
@@ -0,0 +1,13 @@
+# -*- coding: utf-8 -*-
+import numpy as np
+import numexpr as ne
+from timeit import default_timer as timer
+
+x = np.ones(100000)
+scaler = -1J
+start = timer()
+for k in range(10000):
+    cexp = ne.evaluate('exp(scaler * x)')
+exec_time=(timer() - start)
+print
+print("Execution took", str(round(exec_time, 3)), "seconds")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/numexpr/cpuinfo.py 
new/numexpr-2.6.1/numexpr/cpuinfo.py
--- old/numexpr-2.6.0/numexpr/cpuinfo.py        2016-05-01 14:13:01.000000000 
+0200
+++ new/numexpr-2.6.1/numexpr/cpuinfo.py        2016-07-15 19:25:19.000000000 
+0200
@@ -498,6 +498,32 @@
 
     def _is_ppc860(self): return self.__machine(860)
 
+class NetBSDCPUInfo(CPUInfoBase):
+       info = None
+
+       def __init__(self):
+               if self.info is not None:
+                       return
+               info = {}
+               info['sysctl_hw'] = key_value_from_command(['sysctl', 'hw'], 
sep='=')
+               info['arch'] = info['sysctl_hw'].get('hw.machine_arch', 1)
+               info['machine'] = info['sysctl_hw'].get('hw.machine', 1)
+               self.__class__.info = info
+
+       def _not_impl(self): pass
+
+       def _getNCPUs(self):
+               return int(self.info['sysctl_hw'].get('hw.ncpu', 1))
+
+       def _is_Intel(self):
+               if self.info['sysctl_hw'].get('hw.model', "")[0:5] == 'Intel':
+                       return True
+               return False
+
+       def _is_AMD(self):
+               if self.info['sysctl_hw'].get('hw.model', "")[0:3] == 'AMD':
+                       return True
+               return False
 
 class SunOSCPUInfo(CPUInfoBase):
     info = None
@@ -781,6 +807,8 @@
     cpuinfo = IRIXCPUInfo
 elif sys.platform == 'darwin':
     cpuinfo = DarwinCPUInfo
+elif sys.platform[0:6] == 'netbsd':
+    cpuinfo = NetBSDCPUInfo
 elif sys.platform.startswith('sunos'):
     cpuinfo = SunOSCPUInfo
 elif sys.platform.startswith('win32'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/numexpr/numexpr_config.hpp 
new/numexpr-2.6.1/numexpr/numexpr_config.hpp
--- old/numexpr-2.6.0/numexpr/numexpr_config.hpp        2016-06-01 
13:41:46.000000000 +0200
+++ new/numexpr-2.6.1/numexpr/numexpr_config.hpp        2016-07-15 
19:25:19.000000000 +0200
@@ -7,15 +7,17 @@
 #  define USE_UNALIGNED_ACCESS 1
 #endif
 
+#ifdef SCIPY_MKL_H
+#define USE_VML
+#endif
+
 #ifdef USE_VML
-/* The values below have been tuned for a Haswell processor (E3-1240 v3) */
-/* Note: with VML functions a larger block size (e.g. 8192) allows to make use
- * of the automatic multithreading capabilities of the VML library */
-#define BLOCK_SIZE1 8192
+/* The values below have been tuned for a Skylake processor (E3-1245 v5 @ 
3.50GHz) */
+#define BLOCK_SIZE1 1024
 #define BLOCK_SIZE2 16
 #else
-/* The values below have been tuned for a Haswell processor (E3-1240 v3) */
-#define BLOCK_SIZE1 8192
+/* The values below have been tuned for a Skylake processor (E3-1245 v5 @ 
3.50GHz) */
+#define BLOCK_SIZE1 1024
 #define BLOCK_SIZE2 16
 #endif
 
@@ -33,10 +35,6 @@
   #include "unistd.h"
 #endif
 
-#ifdef SCIPY_MKL_H
-#define USE_VML
-#endif
-
 #ifdef USE_VML
 #include "mkl_vml.h"
 #include "mkl_service.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/numexpr/version.py 
new/numexpr-2.6.1/numexpr/version.py
--- old/numexpr-2.6.0/numexpr/version.py        2016-06-01 13:53:46.000000000 
+0200
+++ new/numexpr-2.6.1/numexpr/version.py        2016-07-17 11:46:49.000000000 
+0200
@@ -8,4 +8,4 @@
 #  rights to use.
 ####################################################################
 
-version = '2.6.0'
+version = '2.6.1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/numexpr.egg-info/PKG-INFO 
new/numexpr-2.6.1/numexpr.egg-info/PKG-INFO
--- old/numexpr-2.6.0/numexpr.egg-info/PKG-INFO 2016-06-01 13:58:34.000000000 
+0200
+++ new/numexpr-2.6.1/numexpr.egg-info/PKG-INFO 2016-07-17 11:51:33.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: numexpr
-Version: 2.6.0
+Version: 2.6.1
 Summary: Fast numerical expression evaluator for NumPy
 Home-page: https://github.com/pydata/numexpr
 Author: David M. Cooke, Francesc Alted and others
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.6.0/numexpr.egg-info/SOURCES.txt 
new/numexpr-2.6.1/numexpr.egg-info/SOURCES.txt
--- old/numexpr-2.6.0/numexpr.egg-info/SOURCES.txt      2016-06-01 
13:58:34.000000000 +0200
+++ new/numexpr-2.6.1/numexpr.egg-info/SOURCES.txt      2016-07-17 
11:51:33.000000000 +0200
@@ -21,6 +21,7 @@
 bench/varying-expr.py
 bench/vml_timing.py
 bench/vml_timing2.py
+bench/vml_timing3.py
 numexpr/__init__.py
 numexpr/complex_functions.hpp
 numexpr/cpuinfo.py


Reply via email to