Modeling timing characterists of an architecture
The simple answer is to just build the simplest architecture that gives the results you want. You will have lots of problems anyway, making the system more complex than strictly required is just making more work. And a simple architecture is probably more performant than a more complex one, and easier to work with for further analysis.

Once it is running, check if the performance is enough. If it isn't, measure where it doesn't is up to the task (programmers are notoriously unreliable at estimating that, another reason not to "optimize" before seeing results), then go searching for ways of increasing performance. The most gain can be gotten by architecture changes, then selection of algorithms and data structures, and at the very end local changes (but most of those your compiler will make anyway). Independent of the above, a faster machine might be cheaper than the programmer time required to redo the code.