CS-ToolUnificationFramework  1.0
CS-Tool Unification Framework

Basics

Introduction

This is the main documentation page for Illinois' CS-Tool Unification Framework

CSTUF is intended to function as a wrapper to external Computer Science tools used to accelerate HPC software through build and run time substitutions and optimizations. CSTUF mainly acts as a build system wrapper, using CMake to interface with a projects native build system. The CSTUF build system provides options for enabling different tools at configuration time.

A summary of the available tools is listed below.

  • ICE - Annotation preprocessor. Provides the glue for all tools that require tool-specfic syntax to operate. Also provides autotuning (CSTUF support under development). Modifies source code at build time.
  • Moya - Runtime compiler. Performs static analysis to provide additional information used for code optimization. Built on LLVM.

Tools currently under development, but not yet integrated include

  • AMPI - Runtime dynamic load balancing of MPI ranks.
  • Leap - Tools for automatic code generation, used for multi-rate time integration.
  • Taush (sp) - Libraries to facilitate data exchange between different types of i processing elements (CPU, GPU, KNL, etc).
  • Tangram - Automatic code generation for architecture-specific parameterization. Provides optimized code across multiple processing element types (CPU, GPU, KNL, etc.)

Featuring also for integrated packages:

  • Testing
  • Examples
  • Rudimentary build instructions
  • CMake find modules

Installation

The CS-Tool Framework is built on the CMake build system. CMake is a system for configuration and building that generates platform indpendent build files (e.g. Makefiles) for software packages.

Get the CS-Tools Unification Framework

Get the CS-Tool Unification Framework from github:

git clone https://bitbucket.org:xpacc-dev/cs-tools-integration-framework.git CS-Tools

Set Up Your Build Environment

Create a directory in which to build:

mkdir build
cd build

Tell CMake where you want to install:

CMAKE_INSTALL_PREFIX=/the/path/to/CST/Installation

If you have third party software tools installed in non-standard locations then you need to let CMake know where to find those packages:

CMAKE_PREFIX_PATH=/third_party_install/path1:/third_party_install/path2

Makefile Generation

Invoke cmake to generate your makefiles:

cmake ../CS-Tools

Installation

Build and install the CS-Tool Unification Framework package with:

make
make test
make install