Path: csiph.com!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail From: Francesc Alted Newsgroups: comp.lang.python.announce Subject: ANN: numexpr 2.6.0 released Date: Wed, 1 Jun 2016 14:30:16 +0200 Lines: 66 Approved: python-announce-list@python.org Message-ID: References: Reply-To: faltet@gmail.com Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: news.uni-berlin.de W8v91dXRTe67AcFSgTsVhQPDRDjEoV10lWWmYaOn07gw== Return-Path: X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'dependency': 0.07; 'executed': 0.07; 'expressions': 0.07; 'pypi': 0.07; 'subject:ANN': 0.07; 'subject:released': 0.07; 'suggestions,': 0.07; 'check.': 0.09; 'library),': 0.09; 'tuning': 0.09; 'url:github': 0.09; 'url:rst': 0.09; 'python.': 0.11; '(but': 0.15; '==========': 0.16; 'alted': 0.16; 'bugs,': 0.16; 'bump': 0.16; 'constants': 0.16; 'francesc': 0.16; 'from:addr:faltet': 0.16; 'from:name:francesc alted': 0.16; 'loops': 0.16; 'numpy': 0.16; 'operands.': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'memory': 0.17; 'directory.': 0.18; 'numerical': 0.18; 'processor': 0.18; 'meant': 0.22; 'arrays': 0.22; 'minor': 0.22; 'see:': 0.22; 'skip:= 20': 0.22; '(like': 0.23; 'to:no real name:2**1': 0.27; 'message-id:@mail.gmail.com': 0.27; 'function': 0.28; 'values': 0.28; 'fine': 0.28; 'cpu': 0.29; 'array': 0.29; 'allows': 0.30; 'url:wiki': 0.30; 'version,': 0.30; 'operate': 0.32; 'changed': 0.33; 'url:python': 0.33; 'changing': 0.34; 'previous': 0.34; 'skip:& 20': 0.35; 'received:google.com': 0.35; 'requiring': 0.35; 'project': 0.36; 'url:org': 0.36; 'received:209.85': 0.36; 'evaluation': 0.36; 'hosted': 0.36; 'subject:: ': 0.37; 'done.': 0.37; 'doing': 0.38; 'detail': 0.38; 'version': 0.38; 'received:209': 0.38; 'drop': 0.38; 'anything': 0.38; 'to:addr:python.org': 0.40; 'where': 0.40; 'some': 0.40; 'your': 0.60; 'share': 0.61; 'engine': 0.62; 'relatively': 0.63; 'more': 0.63; 'enjoy': 0.66; 'here': 0.66; 'results': 0.66; 'header:Reply-To:1': 0.67; 'reply-to:no real name:2**0': 0.71; 'reply-to:addr:gmail.com': 0.76; 'heavy': 0.81; 'url:master': 0.84; 'adopt': 0.91; 'announcing': 0.91; 'have.': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:date:message-id:subject:from:to; bh=r4XGwAH2IKAqkY8TT/ajtE87NG/eTkP4l5ztsUX1T9g=; b=sgcDfNJDHpYSAPJCziMfRN+va3cxOHWdW+qXB7mELoCMHFIjd8cX6dR7ib+7cWHEVX pomNdjk8VEFNrVusBOzBhO/HgassfSS0GZT7l/v0rcTlLzlgkEfYp0c7+6XPvu/n5Q7T oh9iUbrhMj4EzONIsRWR56hAwPeSMT2Y2Iwg7TKYIYrCMkPBUsRtVkDCO8GA0ploiVZR QCgfd99jhrOVIPedUTaGg9SI9ChhZgoS3Phz8WDps+PXg07td1VlrXuMMXBEEdXBbw3y KFSYtDTsx0EDGYmJ2KLo02nrzIpZAVtuQUSbxrzGeedpo/KqeJmvZHabtj3SBatdJ8v5 6iBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:date:message-id:subject :from:to; bh=r4XGwAH2IKAqkY8TT/ajtE87NG/eTkP4l5ztsUX1T9g=; b=HjIjXwQIv5dfMmZm+f/N7Qzy1PhxzGsCFhwX39tMAwCkSwp81/qoLmQ68ZYHOBohvy 1nHQ0qvpUhePS+zoy7AvSLJtxhH4T4tdBGPWMQO7H60k7Zd7cLiNcmRFAdB9U3HBPXSU 5VCvBvxznd7xiOR5vBIK2XbQG26wwl6BwPHUgOkxWx/ltNv3K27sK4lR+hkawob5MpPX PkwC8CoJNHDZfDHSX1h7E991eWgFW09lpOCZ2C56wemlaqszF9eeuPIwM+hv8uNnwCiM JnLyo3RBOwyMjoN0VGkHEAOxaM8DdQfChAARQdsgiMR4v24b2BpTKedVSTBVT7kYlLCk GMNQ== X-Gm-Message-State: ALyK8tJgP78gPKYfO2wFqbylEP+EhQmm5o1XpkP7Cs9hjT8Z+5PtM1vo1Jp5kYRBTGNHEvMd8XmTBH/wgxW17w== X-Received: by 10.13.215.136 with SMTP id z130mr2164301ywd.278.1464784216897; Wed, 01 Jun 2016 05:30:16 -0700 (PDT) X-Mailman-Approved-At: Wed, 01 Jun 2016 08:30:59 -0400 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: Xref: csiph.com comp.lang.python.announce:2159 ========================= Announcing Numexpr 2.6.0 ========================= 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. It wears multi-threaded capabilities, as well as support for Intel's MKL (Math Kernel Library), which allows an extremely fast evaluation of transcendental functions (sin, cos, tan, exp, log...) while squeezing the last drop of performance out of your multi-core processors. Look here for a some benchmarks of numexpr using MKL: https://github.com/pydata/numexpr/wiki/NumexprMKL Its only dependency is NumPy (MKL is optional), so it works well as an 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. More specifically: - 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? ========================= The project is hosted at GitHub in: https://github.com/pydata/numexpr You can get the packages from PyPI as well (but not for RC releases): http://pypi.python.org/pypi/numexpr Share your experience ===================== Let us know of any bugs, suggestions, gripes, kudos, etc. you may have. Enjoy data! -- Francesc Alted