Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.
1696 Discussions

Support for Intel Q6600 processor with Intel Fortran 10.0

roine_vestman
Beginner
1,189 Views

Hi,

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?

Thanks!

/Roy

0 Kudos
5 Replies
TimP
Honored Contributor III
1,189 Views
OpenMP in Intel compilers is fairly well attuned to the requirements of Intel quad core as well as dual core CPUs. With quad core, there are situations where the operating system you choose may make a difference, and where the KMP_AFFINITY environment variable may help. gnu openmp has a similar facility. Yes, it is possible that MPI could perform better than OpenMP. It is usually easier to start with the parallel option and begin to introduce OpenMP. Did the webinar fail to mention the Cluster OpenMP option of ifort? The value of Cluster OpenMP and MPI is in supporting distributed memory, for example when you have dual or quad core CPUs on separate motherboards (a "cluster").
If you mean by "true quad core" a unified cache, that is still in the future. It is not likely to make any differerence to your parallel programming, when you use high level tools like OpenMP or MPI. It is simply a question of whether the added complexity delivers additional performance.
If your application is parallelizable into 4 threads (or MPI processes), and is not strongly dependent on memory bandwidth, Intel quad core should show good value.
MPI is generally treated as a semi-independent add-on to a compiler. Any of the popular open source MPI versions, as well as Intel MPI and HP MPI, work well with Intel compilers. Likewise, all of those MPI versions work well with other popular compilers. At the present time, there is no bundled Intel software product combining MPI and compiler; even if there were, it might fall outside the scope of an introductory webinar. If you are setting up a cluster, you could be interested in cluster installation kits such as Platform Computing Rocks or ParTec, which include MPI and compiler development tools. Windows versions may be available soon. While those could work on a single multi-core machine, it would usually be over-kill.

0 Kudos
roine_vestman
Beginner
1,189 Views

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...

/Roy

0 Kudos
jimdempseyatthecove
Honored Contributor III
1,189 Views

Roy,

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.

Jim Dempsey

0 Kudos
roine_vestman
Beginner
1,189 Views

Hi again,

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.

Roy

0 Kudos
TimP
Honored Contributor III
1,189 Views
Both single and dual socket motherboards are currently marketed, supporting OpenMP up to 8 cores. Also, you may find a chassis which supports 2 single socket half width motherboards, where plain OpenMP won't support all 8 cores for a single job. Single and dual socket CPUs aren't interchangeable. Current dual socket motherboards are unlikely to support future CPUs. Also, a change in chipset/motherboard would be needed to support more than 4 cores per CPU.
0 Kudos
Reply