Re: [Speed] Speed Digest, Vol 38, Issue 2

Hello, So I'm trying to find areas where py3 falls behind py2 in terms of performance.Augment reasons and if possible, solutions.
And my mentor(@Botanic) suggested if we could write benchmarks for some modules which presently lack explicit bms and thus we tried writing bm for "threading" module and another to compare concurrency implemented using "threading"(which is actually restricted by gil) and using "multiprocessing" across py2 & py3
Thank you
On Aug 12, 2017 2:14 PM, <speed-request@python.org> wrote:
Send Speed mailing list submissions to speed@python.org
To subscribe or unsubscribe via the World Wide Web, visit https://mail.python.org/mailman/listinfo/speed or, via email, send a message with subject or body 'help' to speed-request@python.org
You can reach the person managing the list at speed-owner@python.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of Speed digest..."
Today's Topics:
- Re: Threading benchmark (Bhavishya)
- Re: Threading benchmark (Bhavishya)
- Re: Threading benchmark (Antoine Pitrou)
Message: 1 Date: Sat, 12 Aug 2017 05:02:07 +0530 From: Bhavishya <bhavishyagopesh@gmail.com> To: Victor Stinner <victor.stinner@gmail.com> Cc: speed@python.org Subject: Re: [Speed] Threading benchmark Message-ID: <CAFRL-_coLaZRrBsNceoPO2QLEHa+wAKDdAooHS--E7i1+pew6w@mail. gmail.com> Content-Type: text/plain; charset="utf-8"
Sorry but I realised that the actual bottleneck is with "range" (and enumeration is slower in py3.) https://stackoverflow.com/questions/23453133/is-there-a- reason-python-3-enumerates-slower-than-python-2.So it's not fair to say that multiprocessing is slow...
On Sat, Aug 12, 2017 at 4:37 AM, Bhavishya <bhavishyagopesh@gmail.com> wrote:
Hello,
WHY-> Presently there are no benchmarks for concurrency,
METHOD USED-> This s <https://gist.github.com/bhavishyagopesh/76529e7bf170948b4d3f3a51f6e6bc 9a>cript tries to benchmark "Concurrency" implemented using threading and multiprocessing module.Actually "threads" in cpython are restricted by "GIL",so it's not actually concurrent...On the other hand "multiprocessing" module creates whole different processes but there is substaintial cost involved in spawing a whole new process. So the there is a trade-off involved which is evident as we increase "CRUNCH_NO" variable.
ToNote-> Interestingly Here py2 looks faster.(actually by a considerable margin) I'm attaching graphs that compare py2 and py3.
IMPROVEMENTS-> More use cases(apart from number crunching)which could verify this and reproduce similar thing.
SO Suggestions required?
thank you.
On Fri, Aug 11, 2017 at 4:09 AM, Victor Stinner < victor.stinner@gmail.com> wrote:
I don't understand what you are trying to test. For example, for a lock, it's very different if a single thread uses the lock, or if two threads use the lock. None of your benchmarks seem to measure concurrency.
Victor
2017-08-11 0:33 GMT+02:00 Bhavishya <bhavishyagopesh@gmail.com>:
Hello,
I as a part of my gsoc project(and on suggestion from my mentor )tried writing a bencmark for threading module. It uses "perf" to measure crearion of objects like Thread,Semaphore,Locks etc. and few methods on them but It might lack on experience and the correctness of doing so.
Here's the bm .
And here are the results of a run on my local machine [specs]:
python3 bm_threading.py ..................... basic: Mean +- std dev: 14.4 us +- 0.4 us ..................... condition: Mean +- std dev: 18.1 ns +- 1.1 ns ..................... lock: Mean +- std dev: 18.1 ns +- 0.9 ns ..................... rlock: Mean +- std dev: 19.4 ns +- 1.6 ns ..................... semaphore: Mean +- std dev: 298 ns +- 56 ns ..................... timer: Mean +- std dev: 6.74 us +- 0.65 us
python2 bm_threading.py ..................... basic: Mean +- std dev: 20.5 us +- 1.1 us ..................... condition: Mean +- std dev: 148 ns +- 2 ns ..................... lock: Mean +- std dev: 21.1 ns +- 0.7 ns ..................... rlock: Mean +- std dev: 151 ns +- 3 ns ..................... semaphore: Mean +- std dev: 336 ns +- 4 ns ..................... timer: Mean +- std dev: 12.5 us +- 0.7 us
So suggestions?
Thank You
Speed mailing list Speed@python.org https://mail.python.org/mailman/listinfo/speed
participants (1)
-
Bhavishya