Re: DES with OpenMP
Solar Designer <solar@...
2012-02-03 05:54:35 GMT
On Thu, Feb 02, 2012 at 03:21:32PM +0000, Alex Sicamiotis wrote:
> Again, moving down from 32 to lower values brought significant gains - especially in 2 threads. LM seems to
be "settled" at a value of 8. While for plain DES the ideal value is 1, still with a value of 8 there's not much
performance impact for it while the LM benefits enormously. 8 seems to be the perfect balance (for my
hardware and across both GCC and ICC) and you might consider it for the next john release after testing with
other hardware as well.
Thanks for your testing. I will likely need to split this into several
settings for different machines and hash types.
> In the meanwhile my curiosity has peaked as to why the openMP version is producing ~250 to 300k c/s over the
standard non-omp client (4750k c/s vs 4450-4500k c/s). Several things being equal (no-asm for both, icc
for both, non-hardware optimizations for both, a value of 1 for des_bs_cpt for both, definite use of just 1
thread for both) there are still 300k in favor of openMP which, normally, it should be slower than the
> Can you think of *any* other parameters which are tweakable and (may) lead to the +300k gain for the omp
version? I want to try various stuff but I don't know what to tweak. My rationale is that if the non-omp
version is running with at least the same parameters of the omp version, then the non-omp could be slightly
faster than the omp-version (I'm always talking about 1 thread) perhaps exceeding 4.8-4.9m c/s instead
of being near the 4.5m mark.
No parameters to tweak, I think - it's just different code.
You may try building with -D_OPENMP instead of -fopenmp - that is, don't
actually enable OpenMP, but request that version of John's source code.
This should complain on truly OpenMP-specific constructs such as calls
to omp_get_max_threads(), which you'll need to remove (just put 1 for
the threads count, etc.) It should also give warnings about the
#pragma's, which you may ignore.