I'm just curious, does software have to be designed specifically to execute X amount of threads, or is it possible to make a program that can detect what you have and work with it, without having to make specific alterations for each possibility (2, 4, 6, 8, etc...)?