Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 5 Oct 2006 15:05:57 +0400
From: Solar Designer <solar@...nwall.com>
To: john-users@...ts.openwall.com
Subject: Re: JTR and os X macintel

Erik -

On Thu, Oct 05, 2006 at 06:09:39AM -0400, Erik Winkler wrote:
> Actually from a CPU usage screen shot I received from websiteaccess,  
> MacOSX seems to have about 80% of one core and 50% of the 2nd core in  
> use while running John.  The MacOSX equivalent of "top" shows 99%  
> usage by john the ripper alone at the same time.   MacOSX may be  
> distributing the load across both processors or even SSE2 units, but  
> I am not certain.  It could explain the high benchmarks though.

I see no way for the OS to meaningfully do that.  The prerequisites for
that would be a parallelizing compiler, a pure C implementation of the
critical loops, and DES_BS_VECTOR being set higher than it is in the
default x86-sse.h file supplied with JtR 1.7.2.  With the assembly code
in x86-sse.S as used by "macosx-x86-sse2" everything is fixed - there's
nothing the compiler or OS can do.  Also, with DES_BS_VECTOR=4, there's
simply no extra parallelism (beyond the use of a single SSE-capable
core) in the code for the compiler or OS to exploit.

As it relates to the higher level code, a parallelizing compiler can't
find out that the benchmark loop in bench.c: benchmark_format() could be
unrolled and then some of its iterations performed in parallel - because
of the cross-object-file calls (which may have side effects and thus
should prevent this kind of optimization).

If there's any use of the other core going on, it must be internal to
the CPU (in that case, we would essentially have what Intel calls
Hyperthreading and not separate cores).

I tend to believe that the benchmark was for a single core.  It looks
like Intel has finally implemented the integer SSE2 ops to their full
potential - achieving the 2x speedup over MMX that some of us were
waiting for.  This is confirmed by the fact that performance for MD5 and
Blowfish (the implementations of which do not make use of MMX or SSE2
presently) is quite ordinary for a single core at this clock rate.

To test for Hyperthreading-like behavior, websiteaccess will need to run
two instances of JtR on DES-based hash benchmarks or against password
files with DES-based hashes simultaneously.  Then compare the
performance of each of these two instances against one running on its
own (alone on the system).

-- 
Alexander Peslyak <solar at openwall.com>
GPG key ID: 5B341F15  fp: B3FB 63F4 D7A3 BCCC 6F6E  FC55 A2FC 027C 5B34 1F15
http://www.openwall.com - bringing security into open computing environments

-- 
To unsubscribe, e-mail john-users-unsubscribe@...ts.openwall.com and reply
to the automated confirmation request that will be sent to you.

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.