Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 18 Aug 2011 11:58:44 +0400
From: Solar Designer <>
Subject: Re: MPI / OpenMPI

On Thu, Aug 18, 2011 at 03:55:08AM +0000, Donovan wrote:
> I got an question about OpenMPi / MPI.

I think that you're confusing OpenMP and MPI (of which OpenMPI is one of
the implementations).  These are very different things with little in
common (despite of only a one-letter difference in the OpenMP and OpenMPI
names, which is a coincidence).  You may take a look at:

> On the futur release it will be possible to integrated directly on code the mpi
> to bypass the "mpirun -np x ./john..." ????

This question shows some confusion on your part as well, but I guess it
can be re-worded as: "will it be possible in future versions to easily
use multiple CPUs/cores in one invocation of John without having to use
MPI?"  The answer is yes, this is planned.  No specific due date, though.

Meanwhile, this is possible with OpenMP-enabled builds, but only for a
subset of hash types.

> I am personaly an bit confused with even that give some good bench, but in use
> it's an bit difficult in some cases, ...

Personally, I don't use the MPI support in -jumbo.  I don't recommend it.
But it's there due to popular demand.

You may be better off using a non-MPI build of John and running several
processes manually (with different "--session" names and doing different
things), or using an OpenMP-enabled build for hash types where this kind
of parallelization is supported.

> Tonight i got also another fact with "md5_gen(12)", the pass apear on screen and
> not on POT ( ./John --format'md5_gen(12)' --show --hashes.txt = 0 pass cracked )
> so , i have to copy & past from screen on txt file than run " mpirun -np 4 .john
> --format='md5_gen'12)' -w=test.txt hashes.txt " & all the pass be printed on POT
> file...

I think this has nothing to do with parallelization.  john.pot is not
updated after every password cracked, which would have performance
impact when the rate of successful cracks is high.  It is only updated
when at least one of the following conditions is met:

1. The auto-save interval has elapsed.  By default, this is set to 600
seconds (10 minutes) with the "Save = 600" setting in john.conf.

2. The write buffer for john.pot or the .log file has filled up.  The
default size of these buffers is 32 KB each (the POT_BUFFER_SIZE and
LOG_BUFFER_SIZE settings in params.h).

3. The process has received the SIGHUP signal.

4. The process terminates cleanly upon finishing its job or on one
Ctrl-C keypress.

If you want to have john.pot updated such that you can do a "--show"
from another terminal, send the John process(es) a SIGHUP signal (such
as with "killall -HUP john" or "kill -HUP john_PID_number_here").

> Well, that just some's observations, but would be nice if in the futur we can
> Have ONE John running in 64bits & with the improvements of the Mpi or the bench
> of the actual "mpirun _np x .."

This has nothing to do with MPI specifically.  Rather, you want to get
rid of MPI for single-machine multi-CPU/core runs.  I agree with you
that this would be desirable.


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.