Hi,

The time numbers from "openssl speed -multi <num processes>" can be
easily misunderstood as the elapsed time (latency) for each crypto
operation. However, they are simply 1 / <total throughput>. While it
makes sense in single-processor cases, they are roughly n times lower
than they should be in multi-processor cases. Having more CPU cores
does not reduce the latency of individual operations. Those operations
are not parallelized, but just replicated for each core. Multi-core
latency numbers should be same (linear scalability) with or higher
(sublinear scalablity) than single-core numbers.

I believe this bug(?) exists on all recent versions.

On a single core:
                  sign    verify    sign/s verify/s
rsa  512 bits 0.000106s 0.000010s   9394.8 100644.5
rsa 1024 bits 0.000534s 0.000029s   1872.3  34610.7
rsa 2048 bits 0.003293s 0.000099s    303.7  10121.8
rsa 4096 bits 0.023287s 0.000369s     42.9   2710.7

On eight cores:
                  sign    verify    sign/s verify/s
rsa  512 bits 0.000013s 0.000001s  74596.6 800000.0
rsa 1024 bits 0.000066s 0.000004s  15055.7 275862.1
rsa 2048 bits 0.000412s 0.000012s   2427.7  80911.2
rsa 4096 bits 0.002904s 0.000046s    344.3  21717.0

Regards,
Sangjin Han

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to