Enter your e-mail address.
Enter the password that accompanies your e-mail.

Building HPCC 1.0.0 with the PathScale compilers

HPCC stands for High Performance Computing Challenge, and is a benchmark incorporating Linpack and a number of other benchmarks to provide a more complete test of supercomputers than the standalone Linpack test currently used for the Top-500 list. You can find out more at the HPC Challenge web site.
Steps to building
To build HPCC, you will need to download the source, configure it to use the PathScale compilers, and then build it. HPCC uses a BLAS library for a few of its benchmarks; we recommend the free GOTO BLAS library appropriate for your architecture.
Downloading HPCC
HPCC can be downloaded from the website:

http://icl.cs.utk.edu/hpcc/software/index.html

These notes are specific to the 1.0.0 version of HPCC released on June 11th 2005.
You will also need a BLAS library. We recommend the GOTO BLAS library, which can be found at:

http://www.tacc.utexas.edu/resources/software/#blas
Building GOTO BLAS with the PathScale Fortran compiler
The following steps are done in the top-level GotoBLAS directory.

After downloading and unpacking the source code, you will need to modify the file Makefile.rule so that F_COMPILER = PATHSCALE is uncommented, as well as BINARY64.

Attached is a Makefile.rule from the GOTO 1.0.0 release that can be used as an example. We do not recommend just dropping this file in to any other GOTO releases, as things may have changed, but it can be used as a guideline.

After modifying the file Makefile.rule, run the following commands to create static and dynamic libraries (.a and .so)
make
cd exports
make so
cd ..
This should create a library that looks something like:

libgoto_opteron-r1.0.0.so

where opteron will be replaced by your architecture if you are using another architecture.
Building HPCC with the PathScale Compilers
After downloading, unpack the source code:
#example for release hpcc-1.0.0
tar -xvzf hpcc-1.0.0.tar.gz
You will now have a top-level directory named hpcc-1.0.0.

Configure the make system to build with PathScale compilers. To do this, insert either the attached Make.Linux_PSC_Opteron_GOTO, or the attached Make.Linux_PSC_em64t_GOTO file, as appropriate for your cluster, into the hpl directory.

If you want to customize the compilation flags used, this is the file to modify. You will need to edit it to set the variable LAdir to point to the correct location for your GOTO BLAS library. If you chose to use a different BLAS library, that is also the location to set it.

At this point, you may want skip to the OPTIONAL STREAM performance boost section, but otherwise you are ready to build. Building is achieved by the command:
make arch=Linux_PSC_Opteron_GOTO
The final step before running is to customize the input file hpccinf.txt file for the number of processes you will be running on, and how much memory they have. P * Q must be equal to your np. Tuning information can be found at:

http://icl.cs.utk.edu/hpcc/faq/index.html

As a start, we note that you can calculate memory usage per process with the calculation:

mem/process = (N^2 * 8 bytes) / num processes

The FAQ referenced above suggests aiming for about 80% of your total memory per process. We would be interested in hearing your experiences with this.
OPTIONAL STREAM performance boost
The version of STREAM in HPCC was reworked in such a way as to give compilers difficulty. It has become common for people wanting to show the very best STREAM performance to modify the make system to allow STREAM to be compiled with additional flags that are not applied to the rest of HPCC. This is completely permitted by the rules for a base submission as found at:

http://icl.cs.utk.edu/hpcc/overview/index.html

The flags we recommend for this are are defined in the files Make.Linux_PSC_Opteron_GOTO and Make.Linux_PSC_em64t_GOTO as STREAMCCFLAGS. However, in order for them to actually be picked up and used, the attached Makefile.hpcc.patch needs to be applied to hpl/lib/arch/build/Makefile.hpcc via this command:
# from top-level directory for hpcc (hpcc-1.0.0 for current version)
# (assuming we previously put Makefile.hpcc.patch in this directory)
patch hpl/lib/arch/build/Makefile.hpcc Makefile.hpcc.patch
Known limitations
None known.

We recommend you record what steps you took, along with their output, in case of problems. You can include this in your email to support. Here is an example of changing a make command to record the output in a text file:
make foo 2>&1 | tee make-foo-log.txt
If you have any comments or suggestions about additions to these pages, please contact support@pathscale.com.
Live help