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

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
sunhuxAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Alex GreenProject Systems EngineerCommented:
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.
0
Jeremy WeisingerSenior Network Consultant / EngineerCommented:
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.
1
Alex GreenProject Systems EngineerCommented:
Turning off HT wouldn't do a single thing.
0
The Five Tenets of the Most Secure Backup

Data loss can hit a business in any number of ways. In reality, companies should expect to lose data at some point. The challenge is having a plan to recover from such an event.

Jeremy WeisingerSenior Network Consultant / EngineerCommented:
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.
0
Alex GreenProject Systems EngineerCommented:
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.
0
Jeremy WeisingerSenior Network Consultant / EngineerCommented:
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
0
Alex GreenProject Systems EngineerCommented:
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.
1
Jeremy WeisingerSenior Network Consultant / EngineerCommented:
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.
1
Lee W, MVPTechnology and Business Process AdvisorCommented:
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....
1
sunhuxAuthor 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
0
sunhuxAuthor 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
0
sunhuxAuthor Commented:
correction: should read
while another paid service (they charge after they succeeded) ...
0
sunhuxAuthor 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
0
sunhuxAuthor 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
0
Lee W, MVPTechnology and Business Process AdvisorCommented:
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.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
sunhuxAuthor 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
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Software

From novice to tech pro — start learning today.