Software Release of the XMT Environment

For Experimenting with XMT, and Teaching and Self-Studying Parallelism

The current web page provides our 2010 software release (v0.82) that allows you to use your own computer for programming the XMT platform and experimenting with it. There are three options for downloading and installing the XMT software as explained below.

Brief Introduction

The Explicit Multi-Threading (XMT) project, that started at the University of Maryland (UMD) in 1997, provides a holistic approach towards desktop supercomputing. Envisioning a 1000-processor on-chip parallel machine in the early 2010s, the XMT architecture can be effectively programmed using a PRAM-like XMTC programming language adding only two simple instructions to the standard C programming language.

For background on the XMT approach, PRAMs and PRAM-like programming please go to the XMT home page

For teaching, or self-studying XMT, please refer to the teaching and self-study page .

For an on-line tutorial, please refer to http://www.umiacs.umd.edu/users/vishkin/XMT/index.shtml#tutorial

Review of the XMT software tools available for download:


The two main XMT software tools are:
  1. a cycle accurate simulator of the XMT machine, configured to emulate a 1024-processor design, and
  2. a compiler from XMTC to that machine.

These tools allow running XMTC code on an emulated XMT machine. To remind you, a hardware prototype of such a 64-processor machine (using FPGA technology) has been in use at UMD since January 2007. A compiler that translates XMTC to OpenMP is also available for download, giving your students an alternative way to run their assignments.

The cycle-accurate simulator is configured to emulate a 1024-processor XMT design. Given current technology trends, fabricating a chip with such a design is becoming feasible by the early 2010s.

A typical use of these tools will be as follows.


  • Download and read the XMTC Tutorial and the XMTC Manual (xmtc-documentation package).
  • Create an XMTC program using a text editor. 
  • Compile the program using the XMTC Compiler (xmtcc package).
  • Run the resulting binary file on the XMT Simulator (xmtsim package) to test for correctness and collect performance results.
  • The XMT machine emulated by the XMT Simulator lacks file I/O capabilities. To provide input data for your applications, a binary memory image can be created using the XMTC Memory Tools (xmtc-memtools package), which can then be loaded into the XMT Simulator.
  • To debug a program, you can use the XMT Serializer to convert the XMTC program to a serial C program. This can then be compiled and debugged using standard (serial) debugging tools. The XMT Serializer is included in the xmtc-tools.
  • To run an XMTC program on another parallel architecture (e.g. an Intel or AMD multicore platform), use the XMTC-to-OpenMP tool for converting it to a C+OpenMP program, which can be compiled and executed using an OpenMP compliant toolchain. The XMTC-to-OpenMP tool is also included in the xmtc-tools package.

The XMT software tools available for download are as follows:



xmtc-documentation The XMTC Manual and XMTC Tutorial. The XMTC language and all the tools included in this release are documented here. ChangeLog
xmtcc XMTC Compiler. Compiles an XMTC program to a binary format for simulation. The source package of the compiler contains only the GPL licensed components of the compiler and thus does not provide all the source code necessarily to build the XMTC compiler from its source. ChangeLog
xmtsim XMT Simulator. Enables cycle-accurate simulation of a 1024-processor XMT machine. ChangeLog
xmtc-memtools XMTC Memory Tools. Creating memory image files to load application input data into the Simulator (file I/O is not supported at the present time). ChangeLog
xmtc-tools XMTC Tools: (1) XMTC Serializer that can be used for debugging XMTC programs; (2) an XMTC-to-OpenMP convertor which generates C+OpenMP programs ChangeLog

Getting and Installing the Tools

There are three ways to use the XMT software tools:

  1. Download and install each tool separately. Available for: Linux x86 platforms. 
  2. Download all the tools through the svn binary-repository. Available for: Linux x86 platforms.
  3. Download our linux virtual box with the tools pre-installed. Available for: Microsoft Windows, MacOS (on Intel-based Mac computers), Linux.
Obviously, if you already have a linux virtual box you might prefer one of the first two options to downloading a new virtual box.

If you are a linux user you can choose any of the three options, but if you are a Windows, or MacOS user your only option is the Virtual Box Option (3rd option).

Option 1: Download tools individually

Go to sourceforge and download and install the tools as described earlier. Each tool package contains a README file with installation instructions.

The advantage of this method is that it gives you maximum flexibility to decide which tools you want and which version of them to install. It is more tedious than the binary repository installation (option 2) however, and probably only makes sense if (i) you don't have svn installed (and cannot install it easily) (ii) don't have enough space for the tools, or (iii) want to mix and match versions of the tools (which in theory is not a good idea).

Option 2: Download the binary repository

You need to have subversion (svn) installed. Then you can download the binary repository using the following command:

svn co https://xmtc.svn.sourceforge.net/svnroot/xmtc/xmtc.binary/linux/i386/xmt xmt-bin-repos

This will create a local directory called xmt-bin-repos which will contain the latest versions of the binaries of all the XMT tools. Next you need to "install" the compiler. This is done by changing to the compiler (xmtcc) directory and running make. This is done as follows:

cd opt/xmtcc
make

Finally you need to add the bin directory under xmt-bin-repos to your PATH environment variable. If you are using bash as your shell, this can be done with the following command:

PATH=your_path/xmt-bin-repos/bin:${PATH}

Whenever you move your xmt-bin-repos directory you must update your PATH variable and "install" the compiler. But this should rarely or never happen. Whenever you want to update to the latest XMT tools, simply cd to the xmt-bin-repos directory and type svn up. You are set!

The advantage of this option is that it is much easier to download and install all the tools and to update them. The only downside is that the svn repository will take more space (~60MB) and you need to have subversion (svn) installed on your computer. You also get less flexibility in mixing and matching tool versions (vs just using the latest), but this is probably not a good idea anyway.

Option 3: The Virtual Box

If you are a Windows or Intel Mac user your only option to use our tools is through a virtual linux box that we provide, which has all the XMT tools pre-installed (v0.81) through the svn repository method (Option 2 above). PowerPC Macs are not supported because the virtualization software that we use (www.virtualbox.org) does not support PowerPC processors. Notice that the virtual box will not be routinely updated with the latest version of our tools but it is very easy for the users to do so, imply by issuing a simple command as explained in the virtual box HOWTO documentation

Using the virtual linux box is like having a window running a linux operating system from within your own operating system (e.g., Windows or Mac) and therefore it requires a significant amount of resources. Find below the minimum and recommended system requirements for using the virtual box.

System Requirements:
  • 1GHz Pentium Processor (recommended 1.5GHz or more)
  • 3GB Disk Space (recommended 5GB or more)
  • 512 MB RAM (recommended 1GB or more)

To start using the XMT Virtual Box, follow the HOWTO to download and install the necessary components.

REMINDER

The virtual box provided is an image of an installation of a linux operating system and as such it may have security vulnerabilities. It is the user's responsibility to update the image with the latest security updates.

The virtual box probably has no advantage if you are a linux user since it requires significant amount of memory and processing power, compared to installing the tools natively. But for Windows or MacOS users it is the only option.