Message291897
> Christian Heimes added the comment:
>
> This small change also changes behavior of OpenSSL dramatically. What
> are your Python and OpenSSL versions?
I tested by compiling my own python3 (8aaf499) against its parent (d6d344d) For python2, I made the same by compiling the 2.7.13 as a baseline and results were consistent with the python I have on Ubuntu 17.10 (3.5.3 and 2.7.13).
> How did you profile the
> performance of the hashing functions?
I compared the timings between my patched vs patchless python versions by using a 630MB file to calculate sha256 as:
perf stat -r 10 Python-2.7.13/python -c "import hashlib; print(hashlib.sha256(open('ubuntu-16.10-server-ppc64el.iso','rb').read()).hexdigest())"
The speedup of ~50% is given due to patchless taking 3.082156387s and patched taking 2.027484800s (errors are less than 1%)
I also noticed what changed on a code level by checking with gdb what is being executed on the sha loop. After my patch I see altivec (SIMD) functions being used on SHA main loop.
> If OpenSSL_config() really improves performance on relevant platforms,
> then we should be consistent and call it in _ssl.c, too.
I'll check that then. Thanks for the hint.
Ps: please note this behavior is noticed on a POWER8 machine. I'm not an OpenSSL expert so I don't know if there are now more optimizations enabled on other architectures as well. |
|
Date |
User |
Action |
Args |
2017-04-19 19:27:41 | gut | set | recipients:
+ gut, christian.heimes |
2017-04-19 19:27:41 | gut | link | issue30102 messages |
2017-04-19 19:27:41 | gut | create | |
|