The University of Texas at Austin, Department of Computer Science

Computer Architecture and Technology Laboratory

Running PARSEC v2.1 in the M5 Simulator



Technical Report

ABSTRACT: This technical report describes the steps that we took to cross-compile PARSEC 2.1 for the Alpha architecture to run on M5. M5 is a full system multiprocessor simulator that is capable of booting a full Linux system. This report covers building an Alpha cross-compiler, adding M5 intrinsics to the PARSEC infrastructure, cross-compiling the benchmarks, and the creation of M5 execution scripts. Currently, we are able to compile all of the PARSEC 2.1 benchmarks and all benchmarks except for swaptions successfully run on M5. Along with this technical report we are distributing a disk image containing pre-compiled statically linked Alpha binaries for all of PARSEC 2.1 that can be used with M5. Using the disk image removes the need to cross-compile the benchmarks. Additionally, we are distributing configuration files and patches that are needed to recompile all of the benchmarks for those that wish to cross-compile the benchmarks.

The report can be found here.

If you use these tools in a publication, please cite this tech report as:

"Running PARSEC 2.1 on M5"; Mark Gebhart, Joel Hestness, Ehsan Fatehi, Paul Gratz, Stephen W. Keckler; The University of Texas at Austin, Department of Computer Science. Technical Report #TR-09-32. October 27, 2009.
BIBTEX

Updates

We are still actively working on solving the remaining errors documented in the report so check this page for updates.

1/27/2010: Ehsan Fatehi has identified the segmentation fault on exit issue as a bug related to the pthread library. In order to fix this issue the following libpthread.a file should be used instead of the version in the cross-compiler tree at:

alphaev67-unknown-linux-gnu/alphaev67-unknown-linux-gnu/sys-root/usr/lib/libpthread.a

This causes slight performance degradation for some number of processors for vips and ferret and significant degradation on dedup with a large number of processors. These benchmarks do not suffer from the segfault on exit issue and can be compiled with the standard libpthread.a library. We have updated the disk image to use the modified pthreads library except for these three benchmarks.

2/24/2010: Updated writescripts.pl to reflect disk image directory structure for checkpoint binaries.

3/4/2010: Added input files for test input set to disk image.

4/19/2010: Updated site to include fixed version of Linux 2.6.27 Kernel for ALPHA_FS under M5.

10/12/2010: Moustafa Mohamed has identified an issue with the header files when compiling libXmu. If you get the error can't find gnu/stubs.h, modify lib/libXmu/parsec/alpha-gcc-hooks.bldconf:


Old: build_env="CFLAGS=\"-I${PARSECDIR}/pkgs/libs/libX11/inst/${PARSECPLAT}/include -I${PARSECDIR}/pkgs/libs/xproto/inst/${PARSECPLAT}/include $CFLAGS -I/usr/include\""

New: build_env="CFLAGS=\"-I${PARSECDIR}/pkgs/libs/libX11/inst/${PARSECPLAT}/include -I${PARSECDIR}/pkgs/libs/xproto/inst/${PARSECPLAT}/include $CFLAGS -I/path to cross compiler/alphaev67-unknown-linux-gnu/alphaev67-unknown-linux-gnu/sys-root/usr/include\""

6/10/2011: Note that the M5 simulator has been rebranded to gem5. All tools provided here work with gem5.

5/24/2013: Uploaded an x86_64 disk image for use with gem5. Reorganized the downloads section to delineate ISAs.

Downloads

If you are not interested in modifying our existing binaries you can run the benchmarks using the following run scripts and images:

.rcS Run Script Generator
PARSEC-2.1 Input Set File
Magic Golden Checkpoint Runscript

Kernel, PAL code and disk image for the ALPHA instruction set:

Linux 2.6.27 Kernel Image (ALPHA)
Modified ALPHA PAL Code (Big Tsunami with more than 4 Cores)
PARSEC-2.1 Disk Image (ALPHA, 556MB, md5sum: baec5a516e660f69ddb40fdd351a2223)

Kernel and disk image for the x86 instruction set:

Linux 2.6.28.4 Kernel Image (x86_64)
PARSEC-2.1 Disk Image (x86_64, 529MB, md5sum: d4e85ed03107bda11b23715028a7e1b0)

In order to recompile the binaries you will need to follow the instructions in the tech report and use the following extra configuration files:

Extra packages needed for Raytrace and Alpha specfic patches and configuration files

Old Files

PARSEC-2.1 Disk Image that does not use modified libpthread.a and suffers from segfault on exit issue

More information

The gem5 website
The PARSEC website
The Crosstool website
The Crosstool-NG website


Please email Joel Hestness, hestness <at> cs.wisc.edu, with questions.