We have a current software application that we currently only run a single instance of at once. It requires no user input, simply runs for a pre-defined amount of time essentially navigating through a flowchart and spitting out data. However, we desire to run multiple (100+) instances of it at once. It is a relatively complicated program, with a decent amount of branching as it decides what to do with each node as it reaches it. There is no current memory bandwidth issues, either. However, it is technically running the same code in parallel... does that mean it can take advantage of SIMD? Or does SIMD only apply to simple instructions, like multiplication and addition?
For more complete information about compiler optimizations, see our Optimization Notice.