(A) The server (with the GPUs) Settings
At least run the pyrit once and you will have the following file at
~/.pyrit/config
.default_storage = file://
limit_ncpus = 0
rpc_announce = true
rpc_announce_broadcast = false
rpc_knownclients =
rpc_server = false
workunit_size = 75000
If your system is enabled Hyper-Threading, the "
limit_ncpus
" should be set to the number of the real CPU cores. For example, my system have 6 real CPU cores and HT is enabled, the setting will be as the following :limit_ncpus = 6
Bug fix :
nano /usr/local/lib/python2.6/dist-packages/cpyrit/network.py
Locate the following lines :
except socket.error:
break
if essid != '' or pwbuffer != '':
pwlist = storage.PAW2_Buffer()
pwlist.unpack(pwbuffer.data)
self.client.enqueue(essid, pwlist)
else:
time.sleep(1)
Change it to :
except socket.error:
break
if essid != '' or pwbuffer != '':
pwlist = storage.PAW2_Buffer(pwbuffer.data)
self.client.enqueue(essid, pwlist)
else:
time.sleep(1)
Boost the network performance :
nano /usr/local/lib/python2.6/dist-packages/cpyrit/network.py
Locate the following lines :
essid, pwbuffer = \
self.server.gather(self.client.uuid, 5000)
Change it to :
essid, pwbuffer = \
self.server.gather(self.client.uuid, 90000)
(B) The client (without or with GPUs) Settings
Client is not required to install nVidia drivers. Just install the BackTrack 5 R2 as is. However, if you client has nvidia display card installed, you should install the nVidia drivers as the captioned mentioned.
The following settings should be set on every client machine.
At least run the pyrit once and you will have the following file at
~/.pyrit/config
.default_storage = file://
limit_ncpus = 0
rpc_announce = true
rpc_announce_broadcast = false
rpc_knownclients = 192.168.0.100
rpc_server = true
workunit_size = 75000
** if you have more than one server, you should set it to (where the IP addresses are the IP address of your servers) :
rpc_knownclients = 192.168.0.100 192.168.0.150
Bug fix :
nano /usr/local/lib/python2.6/dist-packages/cpyrit/network.py
Locate the following lines :
except socket.error:
break
if essid != '' or pwbuffer != '':
pwlist = storage.PAW2_Buffer()
pwlist.unpack(pwbuffer.data)
self.client.enqueue(essid, pwlist)
else:
time.sleep(1)
Change it to :
except socket.error:
break
if essid != '' or pwbuffer != '':
pwlist = storage.PAW2_Buffer(pwbuffer.data)
self.client.enqueue(essid, pwlist)
else:
time.sleep(1)
Boost the network performance :
nano /usr/local/lib/python2.6/dist-packages/cpyrit/network.py
Locate the following lines :
essid, pwbuffer = \
self.server.gather(self.client.uuid, 5000)
Change it to :
essid, pwbuffer = \
self.server.gather(self.client.uuid, 90000)
(C) How to run
On the server
pyrit serve
On the client
pyrit benchmark
Remarks :
I have tested this settings on my system with VirtualBox client. The performance of the Pyrit dropped about by half. It is because the VirtualBox client is not on a real network and the CPUs of the VirtualBox client are not real.
By the way, the performance of the cluster will be dropped a lot even in a home gigabit network environment - ThinkPad X100e (AMD CPU with no GPU). I think Pyrit is not very good at network environment at this moment and the CPU power of the client does matter too.
That's all! See you.