TSP 1.0 - Information Manual
--------------------------------

CONTENTS
--------
	1) License
	2) Introduction
	3) Installation
	4) Computing TSP
	5) Contact (E-mailing list)
	6) References



LICENSE
-------

LICENSE TERMS

Copyright (c)2014 Santiago Pagani, Heba Khdr, Waqaas Munawar, Jian-Jia Chen, Muhammad Shafique, Minming Li, and Jörg Henkel. All rights reserved.

Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following four paragraphs appear in all copies of this software, whether in binary form or not.

IN NO EVENT SHALL THE AUTHORS, THE KARLSRUHE INSTITUTE OF TECHNOLOGY, THE TU DORTMUND, OR THE CITY UNIVERSITY OF HONG KONG BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THEY HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS, THE KARLSRUHE INSTITUTE OF TECHNOLOGY, THE TU DORTMUND, OR THE CITY UNIVERSITY OF HONG KONG SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HERE IS ON AN "AS IS" BASIS, AND THE AUTHORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

NEITHER THE NAME OF ANY GERMAN ENTITY NOR THE NAMES OF THE CONTRIBUTORS MAY BE USED TO ENDORSE OR PROMOTE PRODUCTS DERIVED FROM THIS SOFTWARE WITHOUT SPECIFIC PRIOR WRITTEN PERMISSION.

If you use this software or a modified version of it, please cite the following paper: 
* Santiago Pagani, Heba Khdr, Waqaas Munawar, Jian-Jia Chen, Muhammad Shafique, Minming Li, and Jörg Henkel, "TSP: Thermal Safe Power - Efficient power budgeting for Many-Core Systems in Dark Silicon", in Proceedings of the IEEE/ACM International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS), 2014, pages 10:1-10:10.



INTRODUCTION
------------

This application is namely intended to compute the Thermal Safe Power (TSP) of a given multi-core system. TSP is an abstraction that provides safe power constraint values as a function of the number of simultaneously active cores. Executing cores at power consumptions below TSP results in maximum temperatures below the threshold level that triggers Dynamic Thermal Management (DTM).

Based on the RC thermal network of a specific chip, TSP can be computed through a polynomial-time algorithm for a particular mapping of active cores. This algorithm can be used online, thus accounting both for changes in the mapping decisions and in the ambient temperature.
Furthermore, TSP can also be computed through another polynomial-time algorithm for the worst-case mappings of active cores. That is, a mapping of active cores, for every possible number of simultaneously active cores, that results in the lowest TSP values. Considering such worst-case core mappings is the most pessimistic case, which results in TSP values that are safe for any other mapping scenario, and thus allows the system designers to abstract from core mapping decisions.



INSTALLATION
------------

1. Download the TSP computation tool from http://ces.itec.kit.edu/~pagani

2. Unzip the file

3. Download the Eigen template library from http://eigen.tuxfamily.org
   This library is used to compute the inverse of a matrix. The version tested at the moment of this release is Eigen 3.2.2

4. Go to the TSPcomputation installation directory
	a) cd TSPcomputation-1.0/
	
5. Build the application
	a) g++ -I <pathToEigenLibrary> TSPcomputation.cpp configurationParameters.cpp -o TSPcomputation



COMPUTING TSP
-------------

To compute TSP, the application needs the number of cores in the floorplan, the number of total blocks in the floorplan, the ambient temperature, the critical steady-state temperature which should not be exceeded, the power consumption of inactive cores, the maximum power consumption of the blocks in the floorplan that are not cores (for example, memory controllers or cache), the maximum power consumption that the chip can draw from the power supply, and the RC thermal network (specifically, the B matrix and G vector) associated with the floorplan and the cooling solution.

Optionally, a given core mapping can also be given as input. When no given core mapping is given, the application computes TSP for the worst-case mappings and all numbers of active cores. When a core mapping is given, the application computes TSP for the given mapping.

The RC thermal network can be obtained, for example, by using HotSpot compiled with "VERBOSE 2" and saving the output to a file.

The following example computes TSP for:
- A system with 64 cores and 32 additional blocks that are not cores. That is, 96 blocks in total
- Ambient temperature of 45°C
- Critical steady.state temperature that should not be exceeded of 80°C
- Maximum power of the power supply of 250 Watts
- Power consumption of an inactive core of 0.14 Watts
- Maximum power consumptions of the 32 blocks that are not cores from file: pBlocks.ptrace
- B matrix read from the output of HotSpot in file: multicore.out
- G vector read from the same file as the B matrix
- Given mapping of cores from file: givenMapping.map

./TSPcomputation -cores 64 -n_blocks 96 -b multicore.out -g multicore.out -t_amb 45 -t_dtm 80 -p_max 250 -p_inactive_core 0.14 -p_blocks pBlocks.ptrace -mapping givenMapping.map

(These files are provided as examples)



CONTACT (E-MAILING LIST)
------------------------

TSPcomputation can be downloaded from http://ces.itec.kit.edu/download.
For questions you can write an e-mail to santiago.pagani@kit.edu.



REFERENCES
----------
[1] Santiago Pagani, Heba Khdr, Waqaas Munawar, Jian-Jia Chen, Muhammad Shafique, Minming Li, and Jörg Henkel, "TSP: Thermal Safe Power - Efficient power budgeting for Many-Core Systems in Dark Silicon", in Proceedings of the IEEE/ACM International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS), 2014, pages 10:1-10:10.








