Page 1 of 1

Tune your computer to get faster execution time!

Posted: Thu Feb 11, 2010 5:26 pm
by meteoadriatic
I did some testing and find out that some simple tuning in BIOS can improve your model running time. For example, I started with pretty much default BIOS settings for MBO Asus P5K. I loaded memtest and read there 4351MB/s memory bandwidth. Then, I booted operating system and run WRFEMS 3.1.1 ARW benchmark case. It finished after 01:12:56.

Then I decided to play somewhat with settings in BIOS. I turned on memory Transaction Booster with boost level 3. This alone give me memory bandwidth of 4662MB/s and ARW benchmark running time of 01:09:58. In terms of percentage, this is 4.2% faster. Not bad for such minor tweak. My system stay perfectly stable after turning on Asus's Transaction Booster, keep in mind that there are people whose systems become unstable after that change (I found that by googling about this feature).

Next, I decided to give just little bit more clock speed than components are rated for. To do that and in same time keep my system stable, I had to change RAM. Before, there were very cheap memory modules (4x2GB) running on 800MHz like they are rated as maximum speed and with 5-5-5-15 latency. I didn't rely much on these memory modules so I decided to switch to GSkill Black Series 2x2GB, 800MHz, low latency memory modules. I found that my domains do not take more than 2GB of memory when they are running, so 8GB is here a waste of resources. 4GB is enough for me.

I put new memory modules in and changed in BIOS these:
memory latency from 5-5-5-15 to 4-4-4-12
FSB clock from 333 to 350
memory voltage to 1.85V (as rated figure for this memory)

That gave me total of 841MHz on memory (41MHz over rated 800MHz maximum) and 2.81GHz on CPU (2.66 rated Core2Quad Q9450). I don't see this as huge overclock; many people out there run this CPU on 3.2GHz, some push it up to even 3.4GHz... The system is still rock-stable. I also added two chassis fans to keep it cool.

After these changes, ARW benchmark time drop to 01:05:13, or 8.7% faster than before. Counting change that has been achieved with Asus's Transaction Booster feature, this is total improvement of 11.8% in benchmark time!

The only downside is shortened lifetime of components because of additional stress. How much? I don't think it is relevant at all, because this is pretty tiny overclock and after some years this machine will need to be replaced with new one regardless of it's health...

Hope this helps someone.

Re: Tune your computer to get faster execution time!

Posted: Wed Mar 03, 2010 2:30 pm
by meteoadriatic
Another tweaking you can do is software based. Linux OS can be optimized a bit by changing some settings. The most speedup you can gain by tweaking I/O operations, that is, hard disk reading and writing jobs. I must say that I don't know how much this will make WRF model faster, maybe I will do some tests one day. Anyway, let's see what we can do here.

The first thing you should choose when you build new computer for modelling is how many hard disks you want to put into. If you choose to buy two or more drives, you will be able to make a RAID array. RAID 0 (stripping) will share I/O load across all drives you put in array, thus maximizing rate at which data is written to or read from disks. If you choose to make /usr1 partition for your wrfems, it would be good idea to create RAID0 array for that partition with two or more disks. RAID can be built hardware based if you have true RAID controller (often found in rather expensive server or workstation computers only), or software based (linux raid). It seems that software (linux) raid can outperform even the most advanced hardware raid controllers, so not having one in your computer is not big issue here.

Second thing is to properly choose the filesystem for your partitions. I tend to use XFS for all my partitions that do not have requirements about important data storing on them. If data is more important than performance, I use ext3. So, I format my /usr1 partition where most or all of WRFEMS work will be done as XFS. It looks that XFS will do file operations somewhat faster than etx3 or reiserfs, with even lower CPU usage when writing/reading files on XFS. Try to google about performance of different filesystems, these claims are not my observations but I found that on various sources over internet.

Mounting filesystems is also important, because different mount options can give significantly different performance. For XFS I use option "nobarrier" and "noatime", and for ext3 partitions I also always set "noatime" mount option. Again, reffer to google if you want to find out what exactly these options do. These options should be set in your /etc/fstab so they are applied to mount after every reboot.