how to make software/app that runs on 1 processor distribute the load (ie multi thread) on all the processors

sunhux
sunhux used Ask the Experts™
on
I have a CPU intensive job (cracking a password protected zipfile) but it
only run on one of the four processors of my x230 (& x270) :
how can I make this "Free Zip Password Recovery" run on all the
processors.

From Task Manager, total CPU utilized is constantly at 25-26% only
so would like to be able to distribute the load.  Certainly buying a
Paid professional cracking tool (which has this feature) will help
but not looking into this currently.

the x230 is on Win 7 Profsnl & the x270 is on Win 10 Profsnl
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
AlexSenior Infrastructure Analyst
Commented:
You can't is the simple answer, it would need to be programmed for multi-core and Hyperthreading.

Regards,

Alex
PS http://www.parallelrecovery.com/zip-password.html - you get what you pay for.
Jeremy WeisingerSenior Network Consultant / Engineer

Commented:
The software author would need to code it to take advantage of multiple CPUs. You can also turn off hyperthreading and that would give it a little boost.
AlexSenior Infrastructure Analyst

Commented:
Turning off HT wouldn't do a single thing.
HTML5 and CSS3 Fundamentals

Build a website from the ground up by first learning the fundamentals of HTML5 and CSS3, the two popular programming languages used to present content online. HTML deals with fonts, colors, graphics, and hyperlinks, while CSS describes how HTML elements are to be displayed.

Jeremy WeisingerSenior Network Consultant / Engineer

Commented:
Hypertheading splits each core's cycle among multiple processes. If you turn off hypertheading it will only run a single process through the core. So if you're running a program (like the one the author is using) it can be allocated the entire core without having to share it with other processes. It doesn't quite double the performance but it does increase it for single threaded processes.
AlexSenior Infrastructure Analyst

Commented:
Unfortunately you're incorrect, hyperthreading will allow a process to split across multiple cores and threads, in the event you disable it, an application which is unaware of hyperthreading it'll make no difference.

The only reason to disable HT would be to reduce the load on the Internal memory controller which would also reduce heat. Essentially disabling it for this would do nothing.
Jeremy WeisingerSenior Network Consultant / Engineer
Commented:
Um.... eh? Hyperthreading runs two threads through a single core. Hyperthreading has been around since before there was multiple cores on a CPU. I think you might want to read up on hyperthreading.
https://medium.com/@ITsolutions/will-hyper-threading-improve-processing-performance-15cba11add74
AlexSenior Infrastructure Analyst

Commented:
I'm aware of what it is, unfortunately you are providing incorrect information in the fact that you are stating that disabling HT would make a difference for this. Which is won't. Also, you can run multiple processes at the same time on cores, if the application is aware of HT it would make use of the HT and multiple cores, if it's not, it'll just cane the one core which is what this application will do.
Jeremy WeisingerSenior Network Consultant / Engineer

Commented:
OK, well I still maintain that disabling hyperthreading will probably give some additional performance to the application. I guess the author will need to come to their own conclusion.
Lee W, MVPTechnology and Business Process Advisor
Most Valuable Expert 2013
Commented:
Don't know what program you're using to try to crack the password, but if you can define a dictionary (which I would expect most can), then I would suggest you create different dictionaries and different files.  For example, with 4 cores, run 4 instances of the program, instance 1 tries to find all combinations starting with A-M (upper and lower case), another tries to find N-Z (upper and lower case), another tries to find all combinations starting with symbols (!@#$...), and another tries all combinations starting with numbers.

Keep in mind, you'll likely need to restart this entirely, "losing" what has been done so far... unless you know where it started and when it ends in which case, you can probably make an exclusion for that....

Author

Commented:
Thanks guys : I happen to recall that when disabiling hyperthreading, the # of processors shown
in Task Manager will halve.  Guess will just have to test it out & that will determine the outcome.

Lee,
I'm using Krylack recovery tool (free version):  I noticed that if I "hibernate" the computer, it'll
resume from where it last 'pause' & not lose the work but if I shutdown or restart this tool,
it will start all over again, ie lose the work done so far.

Just noticed I could run several instance of this tool & it will give a separate attached screen:
& I can specify to start brute-forcing from which number (we always use length of 8 & above):
then I can use Task Manager to assign each of the process to specific processor ie CPU affinity.

Just 1 help I need: to determine for a password length of 8, this tool start cracking from
"11111111" or "aaaaaaaa" or "~~~~~~~~" or ??  so that I can specify what password to start
from.

Lastly I've tried 2 online ones & they failed the next day: so
zipwdrecovKr.jpg

Author

Commented:
... so before I pay for one, I wanted to ensure it will work.

7password.com  just hangs  while another paid service (after they succeeded) failed the next day.

I noticed on my x230 (Win 7 64bit), it gives about 5000-6000 passwd/sec while on my x270 (Win 10, guess it's 64bit), it's only 330-380 passwd/sec

Author

Commented:
correction: should read
while another paid service (they charge after they succeeded) ...

Author

Commented:
Any suggestion on any other tools/service that "pay only if succeed in the recovery" are most welcome.

I guess those online ones (which charges after they succeed) use cloud/GPU/multi-processor but I don't have visibility of this & their chances of success

Author

Commented:
After about 5 mins on the x270, the CPU utilization for each drops to about 8-12% & 
number of passwd/sec drop to 250-300/sec
Technology and Business Process Advisor
Most Valuable Expert 2013
Commented:
Frankly, I'd recommend you not bother.  Think about it...

There are 26 lowercase letters, 26 upper case letters, 10 numbers.  And at least 30 special characters.

92 possible characters could be used.  At least.
92*92 = 8464 possible passwords with a 2 characters password.
71,639,296 possible passwords with a 4 character password.  
606,355,001,344 possible passwords with a 6 character password.  At 6000 per second that will take you 1169 DAYS.  Great, so you divide it up amongst 4 CPUs... it still takes almost 10 months.  And that's 6 characters!
At 7 characters, 55,784,660,123,648 possible passwords.  294.8 YEARS on ONE computer with one core.  Use all 4 cores, ONLY 73.7 years each.  Get a nice new computer with 20 cores, then only 14.74 years.  And that's SEVEN characters.  You siad:
determine for a password length of 8
An 8 character password has not less than 5,132,188,731,375,616 possible combinations.  At 6000 per second (the fastest you said you could do), that will take 9.9 million days.  Or just over 27,100 YEARS.  On one core.  Spread that out over Intel's new 28 core CPU and it's still going to take close to 1000 years.  500 years if you assume the 28 core with 5 GHz speed is roughly double what you get now.  

I hate to tell you, but the data is gone.

I mean, you could get lucky, and have it guessed after only 100 years... but you won't be around to see it... and odds are, neither will anyone else who cares what the data is.  You could get REALLY lucky... but the odds of winning the lottery are probably better.

You COULD narrow this time frame down considerably if you know some aspects of the password and you can define a dictionary.  But even if you limit it to upper, lower, numbers, and only the symbols that are part of the numbers, that's still 722.2 trillion possible passwords taking over 3814 YEARS on one core.  Again, run it against 4 cores and you lower that just over 950 years.  Get intel's newest and maybe you could do it before you die.  68.1 years.

The data won't be secure forever.  As computers improve, the speed improves.  Have access to a supercomputer with 100s of cores and you might be able to do it in a few weeks... but right now... Sorry.  The data is gone for the foreseeable future.

Author

Commented:
Ok, appreciate the frank answer: is there any cloud service out there that could possibly
offer such a "supercomputer" cracking service that anyone know?  

I can't get that amount of computing resource even if I use the paid software that Alex
suggests, so I'm counting on any cloud supercomputing service out there, if there's any

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial