|
Message-ID: <20171217205348.GA20713@openwall.com> Date: Sun, 17 Dec 2017 21:53:48 +0100 From: Solar Designer <solar@...nwall.com> To: john-dev@...ts.openwall.com Subject: Re: max_keys_per_crypt tuning On Sun, Nov 12, 2017 at 07:19:13PM +0100, Solar Designer wrote: > Then, OMP_SCALE - the additional scaling factor to compensate for OpenMP > thread desynchronization (to reduce the relative wait times for getting > the threads back in sync) - should only be applied when actually running > more than 1 thread. Currently we usually also apply it for the 1 thread > case, which I now think is wrong. We just got this fixed in > multibit_fmt_plug.c with commit 00655ad63366. We need changes like this: > > - self->params.min_keys_per_crypt *= omp_t; > - omp_t *= OMP_SCALE; > - self->params.max_keys_per_crypt *= omp_t; > + if (omp_t > 1) { > + self->params.min_keys_per_crypt *= omp_t; > + omp_t *= OMP_SCALE; > + self->params.max_keys_per_crypt *= omp_t; > + } Dhiru has made these changes now. Thanks! https://github.com/magnumripper/JohnTheRipper/pull/3013 And I've just realized that we should also rename the "omp_t" variable, since its current name is confusing (the _t suffix is commonly used on typedef's), reserved by POSIX (all *_t are), and isn't comfortably unlikely not to clash with whatever a future version of POSIX might define. In the core tree, I happen to have called a similar variable simply "n". That's in the *_init() functions in DES_bs.c and MD5_std.c. If we'd like a more descriptive name (such as in one format where this needs to be a global static variable), it can be e.g. "threads". > We might also want to move common code like this into a function (maybe > in formats.c) that we'd use from formats' init(), instead of keeping it > as duplicate code like we have now. I think the function should accept "self" and "scale" (we'll pass OMP_SCALE) as parameters. It could be called unconditionally (including on non-OpenMP), and would have the "#ifdef _OPENMP" inside. Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.