Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to test 500 Trillion combinations in less than 6 hours of execution time [closed]

I have a PHP script now looping through combinations of a set of arrays. I can test 6.1 Billion of the 500 Trillion total combinations in 1 hour with a simple PHP script. Is it possible to write a program in any language running on todays average PC that would be able to test all 500 Trillion combinations of multiple arrays in less than ~6 hours?

Also, I do not have the resources to use distributed or cluster computing for this task. What kind of gains could I expected converting the code to multithreaded java/c#?

Thank you

like image 718
teknikol Avatar asked Jan 18 '12 14:01

teknikol


1 Answers

Let's start simple. Do you use threading? If not - a modern higher end Intel today has 12 hardware threads per processor. This means you get a factor of 12 from threading.

If someone gets a server specific for that he could get 24-32 hardware threads easily for relatively low cost.

If the arrays are semi static and you asume adecent graphics card, you may find having from 800 to 3000 processor cores a huge time saver. Nothing beats this - and even average CPU's have quite some core capabilities in their chips or the graphics cards these days.

like image 52
TomTom Avatar answered Sep 18 '22 14:09

TomTom