I would like to know if it's possible to run a program written in fortran, which is quite "heavy", exploiting all the 24 threads of the CPUs.
I am using intel parallel studio XE 2011 and the routine is written in fortran 77.
I would like to know if it's possible to run a program written in fortran, which is quite "heavy", exploiting all the 24 threads of the CPUs.
I am using intel parallel studio XE 2011 and the routine is written in fortran 77.
Sure, that's possible. There's quite some ways to go about this, but:
What I'm used to is having your "system logic" in a more versatile logic that directly supports things like pthreads or boost threads etc; most likely something like C or C++, and then spawning different threads for different parts of your calculation or parallelizable data parts, etc. Notice that modern compilers can generate binaries from fortran that adhere to normal C calling conventions, so that calling fortran functions doesn't have more overhead than calling other C, C++, ... functions. You should make damn sure not to modify global state in your fortran functions, though!
There's no parallelization framework for fortran77 that I would be aware of; there are a few in existence, but as far as I can tell they depend on language features that weren't there in F77. As @HighPerformanceMark pointed out, OpenMP could very well work with the intel compilers.