Installation and Configuration of COSI

COSI relies on some external libraries and tools. This page is dedicated to the installation and configuration of COSI

External libraries and compilation

The compilation of the COSI software infrastructure requires two external libraries:

  • tinyxml. This is a small libraries that is used to parse XML files. Let /path/to/tinyxml be the root directory where tinyxml has been installed. Compile tinystr.cpp, tinyxml.xpp, tinyxmlerror.cpp and tinyxmlparser.cpp into a libray called /path/to/tinyxml/libtinyxml.a. If you don't know how to create a static libary under your operating system try look it up using Google. Make sure to compile this files using the TIXML_USE_STL preprocessor symbol.
  • newmat. This is a matrix library. It is used by the building automation system package for computing intersection of lines and surfaces. Let /path/to/newmat be the root direction of the newmat installation. The release comes with a set of make files for different systems. Compile the source code. It should create a static library /path/to/newmat/libnewmat.a

This is enough to be able to compile COSI. I build COSI under Eclipse and I suggest you to do the same as makefiles are managed automatically by Eclipse. Import the COSI project under Eclipse (form the File menu select Import->General->Existing projects into workspace). Edit the project properties by left-clicking on the project and selecting Properties (at the bottom of the menu)

projectproperties.png

Under C/C++ Build, select Settings. This selection will show the compiler settings like preprocessor symbols, include directories etc. Add the symbol TIXML_USE_STL. COSI will be compiled with the -DTIXML_USE_STL symbol defined.

projectpropertiespreprocessor.png

Now we need to point to the include directories were all the header files will be found. We need to set up three directories: the COSI directoy, the newmat directory and the tinyxml directory. Like in the figure below. I have projects for all this libraries, thus I can use a path relative to the workspace path. This is not possible in general for all installations and it depends where the libraries have been installed. You can enter the full path for each library (i.e. /path/to/tinyxml and /path/to/newmat). Also notice that if you are running a Windows operating system and compiling using GCC under cygwin, the full path must be provided (paths relative to the workspace may create problems).

projectpropertiesdirectories.png

External tools

Depending on the functionalities that the user of COSI need, several tools can be installed and used together with a COSI application. COSI communicates with external tools through files: an input file is generated by a dedicated output function, the tool is launched using a system call and the results are parserd by a dedicated input function. Here is a list of tools that are currently used by COSI.

Graph partitioners

To partition large networks into sub-networks, COSI relies on external tools that implement graph partitioning algorithms. For each of them, dedicated functions to generate the necessary inputs and parsers to read the results generated by the tools are provided with this distribution of COSI. Two partitioners are supported: hmetis and PaToH. The support for PaToH is really motivated by the fact that hmetis does not run under Mac OS X.

The configuration file

  <?xml version="1.0" ?>
  <Configuration>
    <COSI version="CosiNoc 1.3" />
    <TMP root="/tmp" />
    <SYSTEMC root="/Users/apinto/Projects/cosi/src/releases/systemc-2.2.0"/>
    <PARQUET root="/Users/apinto/Projects/cosi/src/releases/PARQUET_050330/Debug" exec="Parquet" />
    <HMETIS  root="/Users/apinto/Projects/cosi/src/releases/hmetis-1.5-osx-i686" exec="hmetis" />
    <KHMETIS  root="/Users/apinto/Projects/cosi/src/releases/hmetis-1.5-osx-i686" exec="khmetis" />
    <SHMETIS  root="/Users/apinto/Projects/cosi/src/releases/hmetis-1.5-osx-i686" exec="shmetis" />
    <PATOH root="/Users/apinto/Projects/cosi/src/releases/PaToH" exec="patoh" />
    <PBSOLVER root="/Users/apinto/Projects/cosi/src/releases/minisat/Debug" exec="minisat" />
    <TRACER root="/Developer/Simulator/GTKwave/bin" exec="gtkwave" />
  </Configuration>
 * 

Generated on Sun Sep 7 18:37:45 2008 for COSI by  doxygen 1.5.4
Contact 
©2002-2018 U.C. Regents