8000 Release WinPython 2022-04 b5: python-3.9.10nogil experiment · winpython/winpython · GitHub
[go: up one dir, main page]

Skip to content

WinPython 2022-04 b5: python-3.9.10nogil experiment

Pre-release
Pre-release
Compare
Choose a tag to compare
@stonebig stonebig released this 29 Dec 19:09
· 692 commits to master since this release
f914cea

inter-thread (2022-12-29) : a nogil WinPython.

Experimenting "nogil" performance on Windows.

Nogil is the extraordinar experimental fork of standard cpython that removes "GIL" limitation.

Promise in theory (on linux), multi-thread "pure python with no I/O" programs:

  • instead of scaling per ZERO by using threads, your program speeds-up per the number of threads (up to your number of "real" cpus),
  • there is nearly no mono-thread penalty (below 10%).

On a personal test on a old intel cpu 2cpu/4threads Windows 10, with nogil python of 2022-12-22:

  • running in "notebooks\docs" the sudoku_thread_perf_comparison.py program gives
    • on Python-3.9.10 nogil of 2022-12-22:
      image
    • on a normal python-3.9.10:
      image

So on Windows, with nogil python of 2022-12-22:

  • nogil scales as for linux exactly to the number of cpu (2 normal + 2 hyperthread means in general 2.2 cpus)
  • but the current mono-thread penalty is about 50% versus standard Python, on Windows.
MD5 SHA-1 SHA-256 Binary Size SHA3-256
a8a7c8a81625528aa74e4aaa068daf7f a922945e129e5579c8bdb42636cce021fdbfb5a1 2d281ff5a21834814cfc70a254244c726e082e72d2ca6b523349fe20ff8f9a01 Winpython64-3.9.10.1dotnogil_a1.exe 26 287 370 Bytes 7c82cf1405f8e901fadeacf7ea622319b03ba7596db6333ecf477b2041643631
a8a7c8a81625528aa74e4aaa068daf7f a922945e129e5579c8bdb42636cce021fdbfb5a1 14056b679f950bd4fcc6ce61264d1ab56059c2295c1867bb6fa3b16a0b415d48 python-3.9.10.amd64.zip 34 786 382 Bytes d71ef3cd36bd0f58f4201d4eb524af727e3185f378ab36a2b69e549285f24f63

WinPython 3.9.10.1dotnogil

The following packages are included in WinPython-64bit v3.9.10.1dotnogil _a1.

Tools

Name Version Description

Python packages

Name Version Description
Python 3.9.10 Python programming language with standard library
pip 21.3.1 The PyPA recommended tool for installing Python packages.
setuptools 58.1.0 Easily download, build, install, upgrade, and uninstall Python packages
sqlite_bro 0.12.2 a graphic SQLite Client in 1 Python file
winpython 5.3.20221226 WinPython distribution tools, including WPPM
0