Software Tools*

Chip Multiprocessors (CMPs)
reliablenoc REST - Reliability Estimation for CMPs
This is a "push-button" tool for the estimation of lifetime reliability of network-on-chip based chip multiprocessors. The tool integrates Gem5 full-system simulator, McPAT power calculator, HotSpot thermal simulator, Monte Carlo algorithm for MTTF computation, and required scripts (Gem5 to mcpat, mcpat to hotspot). Currently it supports TDDB and NBTI aging failure mechanisms. This project also includes dynamic reliability management (DRM) using a combination of thread migration and dynamic voltage and frequency scaling (DVFS) techniques implemented within the above Gem5 full-system simulation framework. Finally, it also includes dynamic energy management (DEM) using DVFS implemented within a simulation framework based on Sniper.
Releases:
2012: REST: Reliability ESTimation for chip multiprocessors (CMPs)
2014: DRM using thread migration
2014-2017: DRM using a combination of thread migration and DVFS techniques
2016-2018: Deep neural network (DNN) based DEM using DVFS


Network-on-Chip (NoC)
remnoc
REMNOC Remapping for NoC
This tool implements an efficient bipartite-matching based heuristic for application remapping to facilitate fault-tolerance against processing element (PE) failures. It also includes a simulated annealing based implementation for comparison purposes.
reliablenoc ReliableNOC Energy- and reliability-aware mapping for regular NoC
Branch-and-bound (BB) algorithm to solve the problem of energy- and reliability-aware mapping for regular NoCs. Reliability is estimated by an efficient Monte Carlo algorithm based on the destruction spectrum of the network. The tool is developed on top of "nocmap 1.2" from CMU.
vnoc1
VNOC 2.0 Versatile NoC simulator
This is a flexible trace-driven cycle-accurate simulator for homogeneous NoCs. It has integrated Orion 2 power model as well as a simple GUI, useful for debugging and displaying routers congestion. In addition, it has frequency throttle and frequency boost based DVFS (dynamic voltage and frequency scaling) implemented at router level. It is meant to be used as either an NoC simulation tool or a platform for implementing and investigating DVFS ideas.
vnoc3
VNOC3 VNOC based framework for 3D NoC architectures
This is a software framework to support the exploration of 3D NoC architectures with two and three layers: first and third layers host irregular floorplans and the middle layer is dedicated to implementing the communication infrastructure as a regular NoC.
hnoc
HNOC Heterogeneous (or irregular) NoC topology synthesis
Custom NoC topology synthesis tool. Main steps: simulated annealing based floorplanning (B*-tree representation), bipartite-matching based routers assignment, multicommodity flow based routing paths calculation (congestion minimization), and VNOC simulation (latency estimation).
vnocdec VnocDec Co-simulation of NoC and H.264 video decoder 
VnocDec = VNoC + H.264Dec is a full system simulation framework for a network-on-chip (NoC) based H.264 video decoder. This allows for the NoC to be exercised with real rather than synthetic traffic. Implementation done by my PhD student, M.G. Moghaddam.


Power systems
pronerds
pro-NERDS (version 1.0): Network reconfiguration of distribution systems
Efficient network reconfiguration of distribution systems for loss minimization. It is based on a minimum-cost maximum-flow algorithm. The tool also includes the famous Baran's reconfiguration algorithm (for comparison purposes) as well as DistFlow loss estimation technique.
prodires pro-PART (version 1.0): Extreme event screening for power systems
This tool implements an efficient extreme event screening for power systems. It is based on cutsize and power-imbalance oriented partitioning.
prodires
pro-DIRES (version 1.0): Minimum set of directional relays
This program implements a deterministic algorithm for the determination of the minimum break point set (MBPS) of directional relay networks based on k-trees of the network graphs.
ML HVAC
HVAC ML Optimization of HVAC using machine learning
Advanced machine learning (ML) models and optimization methods to enhance efficiency and cost-effectiveness of heating, ventilation, and air conditioning (HVAC) systems in smart homes.


VLSI and FPGA circuits
vpr_gr
VPR-GR Net reordering and multicommodity flow based global routing for FPGAs
This is an enhanced routing algorithm implemented on top of the VPR 4.3 tool. It changes the order in which nets are ripped-up and rerouted. Cost calculation is altered during wave expansions for two-pin nets based on the global routing solution obtained by solving an equivalent multicommodity flow problem.
parallelvpr
parallelVPR Parallel placement for FPGAs
This is the multithreaded version of the simulated annealing based placement for FPGAs of VPR. The archive also includes all 20 testcases of  VPR 4.3, and the largest testcases of VPR 5.0.
tpr
TPR Three-dimensional Place and Route for FPGAs (or download local copy here)
This is a complete placement and routing tool for 3D FPGA architectures. The placer is partitioning based while the router is the 3D adaptation of the VPR 2D router.


Design Automation for Embedded Systems
desuu DESUU Design of Embedded Systems Under Uncertainty
This is an approach to mapping for embedded systems with consideration of uncertainties. DESUU tool can generate robust Pareto frontiers in the objective space formed by reliability, performance, and energy consumption..


Antenna Simulations
reliablenoc MMEEP Patch antenna simulation tool
This is a simulation and optimization framework that implements a simulated annealing algorithm to perform design space exploration to identify the optimal patch antenna design.

Useful algorithms
MCMF4
Minimum-cost maximum-flow
This is an adapted version of the Edmonds-Karp relabelling mcmf algorithm [1], originally implemented by Igor Naverniouk. This adapted version allocates memory dynamically in order to use memory as needed.
[1] J. Edmonds, R.M. Karp, "Theoretical Improvements in Algorithmic Efficieincy for Network Flow Problems," J. ACM, vol. 19, pp. 248-264, 1972.
CS2
Minimum-cost maximum-flow
This is a "ported to C++" version of the famous scaling push-relabel CS2 mcmf algorithm of A.V. Goldberg [1]. This C++ implementation is developed from the original C code.
[1] A.V. Goldberg, "An Efficient Implementation of a Scaling Minimum-Cost Flow Algorithm," J. Algorithms, vol. 22, pp. 1-29, 1997.
MCF
Multicommodity flow
This is an efficient C++ implementation of a polynomial time approximation algorithm [1]. It provides a clean and simple interface (for easy integration in bigger projects) for specifying the network (or graph) and the supplies and demands.
[1] G. Karakostas, "Faster approximation schemes for fractional multicommodity flow problems," ACM/SIAM SODA, pp. 166-173, 2002.

REDS: REpository of Distribution Systems
The power systems community is lacking a common suite of realistic testcases for power distribution systems research. Many published papers are still reporting results for very small testcases (such as the 30-bus or 33-bus radial systems). This is a joint effort of Rajesh Kavasseri and Cristinel Ababei whose goal is to collect and maintain such a repository of testcases, which shall be publically available for comparing and reporting research results on problems such as power flow solution, network reconfiguration, capacitor placement, load balancing, contingency analysis, etc.
1. Radial Distribution Systems
This is the list of currently available radial distribution systems. All testscases are converted to a new simple-to-parse format described in the readme file included in the archive. Download the archive containing all of them here.

Testcase Number of Buses / Feeders / Tie swicthes
Source
Comments
1
bus_13_3
13/3/3
S. Civanlar, J.J. Grainger, H. Yin, S.S.H. Lee, Distribution feeder reconfiguration for loss reduction, IEEE Transactions on Power Delivery, Vol. 3, No. 3, pp. 1217-1223, July 1988. This testcase is known as the "Civanlar's system"
2
bus_29_1
29/1/1
U. Eminoglu, M.H. Hocaoglu, A new power flow method for radial distribution systems including voltage dependent load models, Electric Power Systems Research, Vol. 76, No. 1-3, pp. 106-114, Sep. 2005.
This testcase is known as the "IEEE 30 bus system"
3
bus_32_1
32/1/5
M.E. Baran, F.F. Wu, Network reconfiguration in distribution systems for loss reductionand load balancing, IEEE Transactions on Power Delivery, Vol. 4, No. 2, pp. 1401-140, Apr. 1989.
This testcase is known as the "Baran's system"
4
bus_83_11
83/11/13
C.-T. Su, C.-F. Chang, J.-P. Chiou, Distribution network reconfiguration for loss reduction by ant colony search algorithm, Electric Power Systems Research, Vol. 75, No. 23, pp. 190-199, Aug. 2005.

5
bus_135_8
135/8/21
M.A.N. Guimaraes, C.A. Castro, Reconfiguration of Distribution Dystems for Loss Reduction Using Tabu Search, 15th Power System Computation Conference - PSCC, Vol. 1, pp.1-6, Aug. 2005.
Modified to 8 feeders by removal of the super-feeder
6
bus_201_3
201/3/15
M.A.N. Guimaraes, C.A. Castro, Reconfiguration of Distribution Dystems for Loss Reduction Using Tabu Search, 15th Power System Computation Conference - PSCC, Vol. 1, pp.1-6, Aug. 2005. Modified to 3 feeders by removal of the super-feeder
7
bus_873_7
873/7/27
NDSU Power Group
Hypothetical testcase created using data from testcases 5 and 6
8
bus_10476_84
10476/84/260
NDSU Power Group Hypothetical testcase created using data from testcases 5 and 6
2. Meshed Distribution Systems
We have no testcases of this type.
3. Related Links
IEEE Radial Test Feeders
UW Power System Test Case Archive
United Kingdom Generic Distribution System (UKGDS) - requires registration to access


*Some of these tools are provided here as Linux executables together with benchmarks (or testcases) and readme files. If you would like to get the complete source code (C++ and occasionally a mix of C++ and C) of these tools, please send me an e-mail. Also, as a secondary repository, the source code of these tools can be found on GitHub.