I need to specify a PC that will hum through a large number of long-term simulations.
Does anyone have recommendations/specifications for PC components that are critical for optimizing W2 run time?
Thank you!
There are two ways to address this, hardware and software, with benefits that accrue if you apply each judiciously. My response is based on a 5-year reservoir simulation, with 70+ segments and 20+ layers, and 15-minute met data.
Hardware: Beyond the usual "get as fast a processor as possible with a fast data bus", additional memory is real helpful (4 GB or more). We have also opted for fast SCSI drives. I have a 64-bit dual-core workstation on order, and will recompile the program for it. Should speed things up, but I don't know yet how much (ask me in about 1-2 months). I'm getting the machine primarily for GIS work, not CE-QUAL-W2, but will run W2 also just to check out some 64-bit Fortran compilers.
Software: If you use the standard package as provided, turn off the graphics display of model data during the run. This saves much time. However, it still took our application 30 hours to run (Pentium IV 2.8 MHz processor, WinXP with 4 GB RAM). Tom Cole suggested I recompile the program for the particular processor, and also suggested some other compilation options to use. I got the biggest bang for the buck by recompiling for the specific processor. Even my laptop (1.6 GHz Pentium M with 2 GB RAM, WinXP) could run the simulation in about 13 hours. If you are willing to recompile the program, that's the way to go.
Adil,
Thanks very much for your helpful comments. Showing my ignorance here, but is W2 already multithreaded so it can benfit from dual processors? Or would that come out of the processor-specific recompiling that you suggest?
Thanks very much,
gpyke
Looking at the code, it isn't. However, my experience with multithreading is very limited (one or two simple programs), and I don't know the level of effort that would be needed to convert W2. That's not what I meant with processor-specific recompiling, which basically implements processor-level code (machine language, for the old-timers) for a specific processor (e.g., Xeon).
The only benefit I've ever obtained by running W2 on a dual processor machine is that I can use the other processor to do other tasks while W2 uses one processor full-time. I did run one experiment with two W2 applications running simultaneously, both processors running at 99% on W2, and the computer ran both with about a 15% penalty on each (meaning, each application took about 15% longer to execute than if I simply ran one of them and did nothing else on the computer). However, as in most things, one is limited by memory and disk activity, rather than the number of processors.
My new machine is a dual-core 64-bit Xeon, and I haven't yet recompiled the program for that. With the support for Compaq Visual Fortran having ended as of last year, I am investigating other compilers, with Intel Visual Fortran (supposedly worked on by ex-Compaq engineers) being the leading candidate, also because it will probably have better 64-bit support for Intel processors. My other choice is Lahey, but I'll get to that if the Intel compiler doesn't give me satistactory results. (Because I customize W2 slightly for my application, I need to re-compile it anyway.)
I expect to get some benefit from the dual core because using both cores is transparent (handled internally, rather than through specific multithreading options), but I don't have performance figures yet. I suspect I'll get more bang for the buck from the 64-bit architecture rather than the dual core.
One final thing: If you are running anti-virus software or other such resident programs, stopping them can help. Norton Anti-Virus, for example, has about an 8% processor-time penalty that it adds. Some firewall software, too, and Symantec's comes to mind again, puts a significant penalty. I simply shut down those types of programs, and physically disconnect the computer from the network if I need that extra bit more. And I never try to run W2 with the data and/or output going to network drives, because that really slows things down. This may sound elementary to you, and you may already be doing this, but I've found more than one person who has overlooked these easy ways of getting a little extra speed.
Adil
Adil,
This is a very late follow-up question...Did recompiling W2 for 64-bit work for you? Any idea how much improvement in run time?
Thanks much,
Grantley
Hardware to optimize run time
thanks...
Hardware to optimize run time
recompiling W2 for 64-bit