1) i read people say that some programs are more inherently parallel than others. what makes some programs more easily optimized for multi-core and others not? can you give me an example of a desktop program that can't easily be made to utilize multi-cores?
i tend to think of things like word, where if you run spell check, you can just divide the pages by number of cores available and run task. when can you not just divide the work into equal pieces?
2) will optimizing for multi-cores hurt performance on cpu's with less cores? so for example if we reach the point where 4 cores are getting popular. app/game is programmed to divide out work evenly for 4 cores. if you now run the app on a 2 core or single core cpu, i would imagine the app to run really horrible because timing would be off. performance on 2 core would be worse than if the program was written with 2 cores in mind. so programmer will have to make a choice of how many cores to optimize for (optimize for 2 cores and 4 cores gain no performance, or optimize for 4 cores and alienate 2 core cpu's). and this gets worse when 6 or 8 cores come out.
this would be a headache compared to past where better cpu meant better performance without any work.
i tend to think of things like word, where if you run spell check, you can just divide the pages by number of cores available and run task. when can you not just divide the work into equal pieces?
2) will optimizing for multi-cores hurt performance on cpu's with less cores? so for example if we reach the point where 4 cores are getting popular. app/game is programmed to divide out work evenly for 4 cores. if you now run the app on a 2 core or single core cpu, i would imagine the app to run really horrible because timing would be off. performance on 2 core would be worse than if the program was written with 2 cores in mind. so programmer will have to make a choice of how many cores to optimize for (optimize for 2 cores and 4 cores gain no performance, or optimize for 4 cores and alienate 2 core cpu's). and this gets worse when 6 or 8 cores come out.
this would be a headache compared to past where better cpu meant better performance without any work.