Thursday, January 08, 2009  
Google
Web pcquest.com

CIOL Network sites

Search by Issue | CD Search | Sitemap | Advanced Search

• Ad:Discover Green Intelligence, make your business strong • Ad :- Is your career a part of $12 Trillion global spend?
   
 Home > DIY

Running Linpack on Win Compute Cluster

Continued from page: 2

Anindya Roy

Friday, November 02, 2007

Porting Linpack for Windows Compute Cluster
Here, we will see how one can port (re-compile) Linpack source in Windows and then run it on Windows Compute Cluster Environment. We tried it and used it for benchmarking our created Microsoft Compute Cluster. But we faced a problem. Basically, Linpack is an application used majorly for testing Linux based clusters and trust me, porting it to run on MSCCS was not at all a child's play.

In this article, we will see how with the help of some tools and libraries, you can recompile the HPL source files in your Windows architecture and run it on the top of MSCCS.

Prerequisites
The list of prerequisite SDKs and libraries is too long, but the first thing that you need is MS Visual Studio 2005. Install it on any of the nodes of your MS Compute Cluster. The compiler is to be installed on one of the nodes because it ensures that you are compiling your application on the right hardware architecture and as a result you'll get better performance.

After this, download both the AMD and Intel's Math Kernel libraries. Download and install the file called 'acml3.5.0-64-win64' from http://tinyurl.com/ 2k6tny. Also download and install the Intel's Math Kernel library use the following link: http://tinyurl.com/2p9m8f.

Now install the MS Compute Cluster SDK from http://tinyurl.com/3yjyg9. Just make sure that you download and install the 64-bit version. Now the installation is done but for Linpack to work properly you'll have to perform some nasty tricks. This is because the makefile that we are going to use for compiling Linpack had a lots of path names hardcoded.

To begin with, first create a folder called “scratch” at C:\ of the node where you have installed all the above mentioned components. Then go to the folders where you have installed ACML and MKL.

By default they will be in the Program Files folder if you did not give any other path. Go to the AMD folder first and rename the ACML3.5.X file as ACML3.0.0. Similarly, go to the Intel's folder and rename 9.1.x as 8.0.1. So, the hacking part is done and we are ready to work on the actual file.

Applications built using Visual Studio with Manifest option enabled, can't be run using MS CCS. Therefore, disable that option before you compile Linpack

Compiling Linpack
Now download the latest version of HPL from http://tinyurl.com/2mopw8. Unzip it in a way that the HPL folder comes under the C:\scratch folder.

In Linux, Linpack uses the make command for compilation. But the makefiles are generally created for different Linux distros and not for the Windows. So, now you have to grab a makefile for Windows. To make our task easier, if we also get a .vcproj file for Linpack then we can use it to compile Linpack directly on VS 2005. You can download all the required components from our forum. The link for the same is http://forums.pcquest.com/forum/viewtopic.php?t=6154&highlight=. Go to this link and download the xphl_port.zip file. Unzip it under the C:\scratch\hpl folder and copy the HPL_timer_walltime.c to the C:\scratch\hpl\testing\timer folder. There will be a file with the same name already sitting in that folder, so while copying replace the old one with the new one.

Double click on the xhpl.vcproj file and open it as a VC++ project in VS 2005. You have to build the project but before that one more thing is required. The VS 2005 while compiling an exe embeds the manifest file inside the exe, which is not recognized by our mpiexec command that finally you have to use for running Linpack. So, you have to tell VS2005 not to embed the manifest file while compiling. To do so, go to the Property page of the xhpl project and click on Manifest Tool> input output and change the value of 'Embed Manifest' from Yes to No. Now close this window and go to the Build menu, and click on the Build Project option to compile Linpack. The exe will be created in the C:\scratch\hpl\bin\ 64\xhpl.exe.

Once you have submitted the job, you can then view the status of the job under the Job Monitor window

Running XHPL
To run XHPL you have to use the Compute Cluster Job Manager. For this go to Program Files> Microsoft Compute Cluster Pack. Then, go to the File> Submit job Menu. This will open up a window. Here provide a descriptive job name and go to the Processors tab. Then select the number of processors that you want to use from your cluster to process your job. Remember, the number you provide should be equal to the number of cores and not the number of physical processors.

Now go to the Tasks tab and in the Command line field, type in the command you want to run. If it's an MPI process that you are going to run (which Linpack is) then the command will be something like 'mpiexec xhpl.exe'. To add tasks click on the Add button. Tasks that have been added will get listed under the task list.

Select the task and click on the Edit button. Here, provide the working directory, and input and output file name. The working directory is essentially the shared location where the xhpl.exe sits and it should look something like Error! Hyperlink reference not valid.

The output file can be any file where you want to get the output of Linpack. By default it is hpl.out. The input file is of course the HPL.dat file. Provide these values and submit the task to get executed.

This will start the xhpl process on all the nodes. But if it fails then you have to modify the hpl.dat file in the bin folder. This is the file where you set all runtime settings for xhpl and from here you can also tune XHPL for performance. Tuning XHPL is a tedious job and it is not possible for me to cover it in these two pages.

While writing this article, I am still trying to figure out how to get the best performance out of our cluster by tuning XHPL. So far, I have achieved some 46 GFlops, but there is still a long way to go. So, when I am done with this tuning, next month I will talk about how to tune XHPL in detail. Till then you can refer to the article hosted at http://tinyurl.com/23q98y.

Page(s)   1  2  3  



Untitled 1


Does your business have Green Intelligence


Before you press ctrl+p, get innovative


   
 


 
 

Magazine Subscription | RQS | Contact Us | Team PCQuest