Navigation: Home | Downloads | Getting SST | Documentation | Support
These instructions are intended to walk the user through a detailed set of steps to build and install the optional external components used by SST. It is intended for users with intermediate knowledge in the operation of Unix/Linux/OSX environments.
NOTE: The following instructions assume the user has completed the basic build steps for SST outlined in Detailed Build and Installation Instructions for SST.
The SST Release Notes identify what operating systems, compiler and external component combinations have been tested and proven to work with SST.
NOTE: Using combinations other than what is identified in the Release Notes may cause build failures and/or unexpected results.
A detailed list of elements provided with the SST distribution are available at SST Element Summary and SST Element Release Matrix.
If you encounter difficulties, go to the SST Support page.
NOTE: Building SST and its External Components can sometimes be cumbersome and error prone due to the sheer number of combinations of operating systems, compiler versions and external required components. It is STRONGLY recommended that users closely follow these instructions.
Refer to Detailed SST Build and Install Instructions for more information on system requirements, special instructions, example directories and additional tasks for users.
SST allows for a number of optional external packages which can be tricky to build. Some notes and hints are included here.
Carefully following the instructions provided below should minimize any problems that may arise.
These are optional external components for the SST-Elements. They may provide additional features.
OPTIONAL EXTERNAL COMPONENT - Used for SST Partitioning within the SST-Core
General Infomation:
Where to find:
Build Instructions:
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive zoltan_distrib_v3.8.tar.gz
$ cd $HOME/scratch/src
$ tar xfz zoltan_distrib_v3.8.tar.gz
$ cd Zoltan_v3.8
$ mkdir build
$ cd build
2.
Set the home directory environment variable of the Zoltan installation.
$ export ZOLTAN_HOME=$HOME/local/packages/Zoltan
3.
Configure the build and installation of Zoltan
$ CC=`which mpicc` CXX=`which mpicxx` ../configure --with-cflags="-fPIC" --with-cxxflags="-fPIC" --prefix=$ZOLTAN_HOME
4.
Build and Install Zoltan
$ make everything
$ make install
5.
Configure SST-Core to use Zoltan
$ cd <to SST-Core base directory>
$ ./configure <all other SST configure options> --with-zoltan=$ZOLTAN_HOME
$ make install
These are optional external components for the SST-Elements. They may provide additional features for elements or they may be required to allow an element to be built.
OPTIONAL EXTERNAL COMPONENT
General Infomation:
Where to find:
DRAMSim2-2.2.2.tar.gz
to v2.2.2.tar.gz
for the following instructions.Build Instructions:
- Instructions specific to Linux Operating Systems.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive v2.2.2.tar.gz
$ cd $HOME/scratch/src
$ tar xfz v2.2.2.tar.gz
$ mv DRAMSim2-2.2.2 DRAMSim2
$ cd DRAMSim2
2.
Set the home directory environment variable of the DRAMSim2 installation.
$ export DRAMSIM2_HOME=$HOME/local/packages/DRAMSim2
3.
Build the DRAMSim2 library
$ make libdramsim.so
4.
Install DRAMSim2 library
$ cp -r . $DRAMSIM2_HOME
5.
Configure SST-Elements to use DRAMSim2
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-dramsim=$DRAMSIM2_HOME
$ make install
- Instructions specific to Mac OSX Operating Systems.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive v2.2.2.tar.gz
$ cd $HOME/scratch/src
$ tar xfz v2.2.2.tar.gz
$ mv DRAMSim2-2.2.2 DRAMSim2
$ cd DRAMSim2
2.
Set the home directory environment variable of the DRAMSim2 installation.
$ export DRAMSIM2_HOME=$HOME/local/packages/DRAMSim2
3.
Build the DRAMSim2 library
$ make libdramsim.dylib
4.
Install DRAMSim2 library
$ cp -r . $DRAMSIM2_HOME
5.
Configure SST-Elements to use DRAMSim2
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-dramsim=$DRAMSIM2_HOME
$ make install
OPTIONAL EXTERNAL COMPONENT
General Infomation:
Where to find:
v2.0.0
to NVDIMMSim-2.0.0.tar.gz
for the following instructionsBuild Instructions:
- Instructions specific to Linux Operating Systems.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive NVDIMMSim-2.0.0.tar.gz
$ cd $HOME/scratch/src
$ tar xfz NVDIMMSim-2.0.0.tar.gz
$ mv NVDIMMSim-2.0.0 NVDIMMSim
$ cd NVDIMMSim/src
2.
Set the home directory environment variable of the NVDIMMSim installation.
$ export NVDIMMSIM_HOME=$HOME/local/packages/NVDIMMSim
3.
Build the NVDIMMSim library
$ make libnvdsim.so
4.
Install NVDIMMSIM library
$ cp -r . $NVDIMMSIM_HOME
5.
Configure SST-Elements to use NVDIMMSim
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-nvdimmsim=$NVDIMMSIM_HOME
$ make install
- Instructions specific to Mac OSX Operating Systems.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive NVDIMMSim-2.0.0.tar.gz
$ cd $HOME/scratch/src
$ tar xfz NVDIMMSim-2.0.0.tar.gz
$ mv NVDIMMSim-2.0.0 NVDIMMSim
$ cd NVDIMMSim/src
2.
Set the home directory environment variable of the NVDIMMSim installation.
$ export NVDIMMSIM_HOME=$HOME/local/packages/NVDIMMSim
3.
Build the NVDIMMSim library
$ make libnvdsim.dylib
4.
Install NVDIMMSIM library
$ cp -r . $NVDIMMSIM_HOME
5.
Configure SST-Elements to use NVDIMMSim
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-nvdimmsim=$NVDIMMSIM_HOME
$ make install
OPTIONAL EXTERNAL COMPONENT - Requires NVDimmSim and DRAMSim2
General Infomation:
Where to find:
Build Instructions:
($HOME/scratch/src)
and are named as shown.- Instructions specific to Linux Operating Systems.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive HybridSim-2.0.1.tar.gz
$ cd $HOME/scratch/src
$ tar xfz HybridSim-2.0.1.tar.gz
$ mv HybridSim-2.0.1 HybridSim
$ cd HybridSim
2.
Set the home directory environment variable of the HybridSim installation.
$ export HYBRIDSIM_HOME=$HOME/local/packages/HybridSim
3.
Build the HybridSim library
$ make libhybridsim.so
4.
Install HybridSim library
$ cp -r . $HYBRIDSIM_HOME
5.
Configure SST-Elements to use HybridSim
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-dramsim=$DRAMSIM2_HOME --with-nvdimmsim=$NVDIMMSIM_HOME --with-hybridsim=$HYBRIDSIM_HOME
$ make install
- Instructions specific to Mac OSX Operating Systems.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive HybridSim-2.0.1.tar.gz
$ cd $HOME/scratch/src
$ tar xfz HybridSim-2.0.1.tar.gz
$ mv HybridSim-2.0.1 HybridSim
$ cd HybridSim
2.
Set the home directory environment variable of the HybridSim installation.
$ export HYBRIDSIM_HOME=$HOME/local/packages/HybridSim
3.
Build the HybridSim library
$ make libhybridsim.dylib
4.
Install HybridSim library
$ cp -r . $HYBRIDSIM_HOME
5.
Configure SST-Elements to use HybridSim
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-dramsim=$DRAMSIM2_HOME --with-nvdimmsim=$NVDIMMSIM_HOME --with-hybridsim=$HYBRIDSIM_HOME
$ make install
OPTIONAL EXTERNAL COMPONENT - LINUX ONLY
General Infomation:
Where to find:
Build Instructions:
- Instructions specific to Linux Operating Systems.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive 0.2.1.tar.gz
$ cd $HOME/scratch/src
$ tar xfz 0.2.1.tar.gz
$ cd qsim-0.2.1
2.
Set the home directory environment variable of the QSim installation.
$ export QSIM_HOME=$HOME/local/packages/QSim
3.
Apply a patch to QSim 0.2.1 - (Fixes a file open problem with Ubuntu)
$ patch -i <SST-Elements 6.0.x Source Root>/src/sst/elements/qsimComponent/patches/qsim-0.2.1-fileOpenCheck.patch
4.
Obtain the qemu-0.12.3.tar.gz
file. (The getqemu.sh
script will attempt to download it from the Internet if a local copy cannot be found.)
$ ./getqemu.sh
$ pushd qemu-0.12.3
$ make
$ popd
$ export QSIM_PREFIX=$QSIM_HOME
$ make install
5.
Configure SST-Elements to use QSim
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-qsim=$QSIM_HOME
$ make install
OPTIONAL EXTERNAL COMPONENT - LINUX ONLY
General Infomation:
Where to find:
Build Instructions:
- Instructions specific to Linux Operating Systems.
1.
Downloaded CHDL files to to $HOME/scratch/src/
$ git clone https://github.com/cdkersey/chdl.git chdl_dev
$ git clone https://github.com/cdkersey/chdl-stl.git chdl-stl_dev
$ git clone https://github.com/cdkersey/chdl-module.git chdl-module_dev
2.
Set the home directory environment variable of the CHDL installation.
$ export CHDL_HOME=$HOME/local/packages/chdl
3.
Build and install of CHDL
$ cd $HOME/scratch/src/chdl_dev
$ make install PREFIX=$CHDL_HOME
$ cd $HOME/scratch/src/chdl-stl_dev
$ make install PREFIX=$CHDL_HOME
$ cd $HOME/scratch/src/chdl-module_dev
$ mkdir -p $HOME/local/packages/chdl-module/include/chdl
$ make install PREFIX=$CHDL_HOME PACKAGES=$HOME/local/packages
4.
Configure SST-Elements to use CHDL
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-chdl=$CHDL_HOME
$ make install
OPTIONAL EXTERNAL COMPONENT - Used by Scheduler Element for optional enhanced features
General Infomation:
Where to find:
Build Instructions:
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive glpk-4.54.tar.gz
$ cd $HOME/scratch/src
$ tar xfz glpk-4.54.tar.gz
$ cd glpk-4.54
2.
Set the home directory environment variable of the GLPK installation.
$ export GLPK_HOME=$HOME/local/packages/GLPK
3.
Configure the build and installation of glpk
$ ./configure --prefix=$GLPK_HOME
4.
Build and install glpk
$ make all install
5.
Configure SST-Elements to use glpk
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-glpk=$GLPK_HOME
$ make install
OPTIONAL EXTERNAL COMPONENT - Used by Scheduler Element for optional enhanced features
General Infomation:
Where to find:
Build Instructions:
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive metis-5.1.0.tar.gz
$ cd $HOME/scratch/src
$ tar xfz metis-5.1.0.tar.gz
$ cd metis-5.1.0
2.
Set the home directory environment variable of the METIS installation.
$ export METIS_HOME=$HOME/local/packages/METIS
3.
Edit the METIS Make file located at $HOME/scratch/src/metis-5.1.0/Makefile
as follows:
# enable GKRAND support
CONFIG_FLAGS += -DGKRAND=ON
4.
Edit the METIS include file located at $HOME/scratch/src/metis-5.1.0/include/metis.h
as follows:
#define IDXTYPEWIDTH 64
#define REALTYPEWIDTH 64
5.
Configure, Build and install METIS
$ make config prefix=$METIS_HOME
$ make
$ make install
6.
Configure SST-Elements to use METIS
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-metis=$METIS_HOME
$ make install
OPTIONAL EXTERNAL COMPONENT - Required for Ariel Element
General Infomation:
Where to find:
Build Instructions:
- Instructions specific to Linux Operating Systems.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive pin
$ cd $HOME/scratch/src
$ tar xfz pin-2.14-71313-gcc.4.4.7-linux.tar.gz
2.
Set the home directory environment variable of the PinTool installation.
$ export PIN_HOME=$HOME/local/packages/pin-2.14-71313-gcc.4.4.7-linux
$ export INTEL_PIN_DIRECTORY=$PIN_HOME
3.
Copy the macsim directory to the SST elements directory
$ cp -r pin-2.14-71313-gcc.4.4.7-linux $PIN_HOME
4.
Configure SST to use PinTool
$ cd <to SST-Elements base directory>
$ ./configure <all other SST-Elements configure options> --with-pin=$PIN_HOME
$ make install
- Instructions specific to Mac OSX Operating Systems using Clang.
1.
Assuming that the tarfile has been downloaded to $HOME/scratch/src, unarchive pin
$ cd $HOME/scratch/src
$ tar xfz pin-2.14-71313-clang.5.1-mac.tar.gz
2.
Set the home directory environment variable of the PinTool installation.
$ export PIN_HOME=$HOME/local/packages/pin-2.14-71313-clang.5.1-mac
$ export INTEL_PIN_DIRECTORY=$PIN_HOME
3.
Copy the macsim directory to the SST elements directory
$ cp -r pin-2.14-71313-clang.5.1-mac $PIN_HOME
4.
Configure SST-Elements to use PinTool
$ cd <to SST-Elements base directory>
$ ./configure <all other SST configure options> --with-pin=$PIN_HOME
$ make install