Rochester Software Transactional Memory

Last update: 03/14/08
  • Main
  • License
  • Download
  • Building RSTM
  • Programming with RSTM
  • Applications

Supported Platforms

We have successfully built and tested RSTM in the following environments:

  • gcc 3.4.4/gcc 4.1.1/gcc 4.1.2/gcc 4.2
  • SPARC: SunFire 880 (8 CPUs), SunFire 6800 (16 CPUs), SunFire T1000 (8x4 CPUs)
  • x86: Intep Pentium IV, Pentium III, Xeon (2x2), Core2 (duo/quad), and various Athlon and Centrino processors
  • SunOS 5.9, SunOS 5.10, Fedora Core 3/5, Mac OS X 10.4, Mac OS X 10.5, Microsoft Windows XP, Microsoft Windows Vista (32 bit), and many other Linux distributions

The timing code and atomic operations necessary to run RSTM on OpenBSD and FreeBSD are available in the latest release. There is also experimental support for Itanium processors.

If you successfully build RSTM in another environment, please let us know!

Folder Layout

There are 5 top-level folders:

  • alt-license/ - code not owned by the University of Rochester Department of Computer Science, such as parts of the Loki library, Win32 GetOpt, and rand_r() for Win32.
  • stm/ - all library code
  • mesh/ - Delaunay triangulation code
  • bench/ - data structure microbenchmarks
  • swarm/ - OpenGL 3D rendering application

Building the RSTM library and benchmarks

  1. After you have unpacked the rstm tarball, you will need to build the config.h and Makefile.inc files. In version 4, the stmconfig executable performs this task. First, build stmconfig by typing 'make stmconfig' (Windows users must perform this task from the Visual Studio 2008 Command Prompt, by typing 'nmake /f Makefile.win32'). Then invoke the interactive stmconfig tool (when stmconfig is invoked with the -D option, defaults will be chosen for you).
      make stmconfig
      ./stmconfig
    
  2. The top-level makefile will build an stm library based on the values in config.h and Makefile.inc. This makefile will also build the microbenchmark code.
      make all
    

Please note that the makefiles are written for GNU make. On Solaris machines, use 'gmake'.

Building the mesh and swarm benchmarks

To build these benchmarks, you must first configure and build the stm library using the above instructions. Then enter the appropriate directory and type 'make'.

The swarm benchmark requires the GL Utility Toolkit GLUT, which may or may not be preinstalled in your system. See the swarm README for more detailed information.

Please note that the mesh has not yet been ported to Microsoft Windows.

Questions? contact webmaster
Department of Computer Science
University of Rochester