I am considering buying either an Intel E6600 processor (dual core), or an Intel Q6600 processor (2*dual core). Now, how easy would it be to get added performance from the Q6600? Willthe compiler automatically treat it as a four core machine (as I understand it, it is really not) or may I have to use say the MPI library?
Also, I watched the webinar that introduced 10.0 version of the Intel Fortran compiler. MPI was not mentioned as one of the tools a single time, can somebody tell me why? Without going to clusters, am I better off learning OpenMP or MPI?
Tim: Thanks for a great answer. In the future I might move my application to a cluster although I'll probably start with a desktop Q6600 and see what that can deliver in terms of performance. It seems like I should start with OpenMP and then Cluster OpenMP or MPI. I need to look into Cluster OpenMP...
Depending on your current choice of motherboard and system box you can quite easily go to 8 cores (two quad cores) with Intel or 16 cores (eight dual cores) with AMD. So you have a ways to go with SMP before you consider looking into Cluster options. Within a year you will be able to double the number of cores available in an SMP system.
That said, a lot will depend on the nature of your application. SMP works best for shared memory type of applications. Cluster works best if the problem can be divided into multiple copies of the application to be run in separate process space. Then through message passing interface the processes push partial results to a control process. Many of the MPI tools/libraries try to make this transparent to some extent.
Applications that move data least would tend to benefit from MPI. An example of which might be a database search and updatewhere each system in the cluster is responsible for a fixed portion of the database. The controlling process would pass the message to the process (on a system) responsible for the section of the database corresponding to the search key.
The nature of your application will determine the most suitable architecture.
So if I buy a motherboard that can support a Q6600, is it likely that I can upgrade to 2*4 cores in a year or so?
This is obviously a hardware question. Sorry about that.