Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Use 50% of Dual Core CPU

tc2172
Beginner
572 Views
I am currently running the Linux Intel Fortran Compiler with an AMD64 X2 4600+. After I have compiled programs and execute them they only use 50% (one core only) of the CPU. I am running Ubuntu with the K8 smp kernal so the OS detects both cores, but top only says either 50% of CPU resources or 100% of CPU1 and 3% of CPU2. I am quite found of the Intel Compiler and need to for USGS Fortran Models (not designed with openmp or multithreading), such as MODFLOW/SUTRA/HST3D (Mostly use HST3D with MINOS, an optimization program).

If you could tell me what to do to make full use of my cpu that would be great. Plus what optimizations that would work on a USGS models written in either FORTRAN 77 or 90.

Tc2172
0 Kudos
3 Replies
Steven_L_Intel1
Employee
572 Views
Unless you have added threading to your program, it will be single-threaded and use one core only. You can try -parallel and see what it gets you - enabling the optimization reports will tell you what the compiler was and wasn't able to do. For much more information, read the "Optimizing Applications" manual provided with the compiler.
0 Kudos
tc2172
Beginner
572 Views
Thank you that is what I suspected. Will the -parallel effect the results in anyway? Numerical accuracy is a major concern along with speed. Since I am using court defensible programs, it is frowned upon for altering the source code significantly. Either to make it more openmp friendly or if -parallel alters the results in anyway.

I do have a model that states it is not thread safe. Does that mean that it will yield erroneous results with commands such as -openmp or -parallel ?

Thanks again,

Tc
0 Kudos
Steven_L_Intel1
Employee
572 Views
It depends on how sensitive your program is to order of evaluation, though normal optimizations can also change that. I think you'll just have to try it and see. I assume that you have tests with known results to compare against.

With -openmp, you have to understand your program and know what is thread-safe and what is not. -parallel is much more conservative and is unlikely to give you problems there, but will also give less speedup.
0 Kudos
Reply