Vitri: A high performance system for heuristic optimization

Vitri is an object-oriented framework implemented in Java for high-performance distributed computing. Using Vitri, applications can engage in cooperative problem solving by dividing their tasks among heterogeneous clusters of workstations and PCs. Vitri's features include basic support for distributed computing and communication, as well as visual tools for evaluating run-time performance, and modules for heuristic optimization. It balances loads dynamically using a client-side task pool, allows for the addition or removal of servers during a run, and provides fault tolerance transparently for servers and networks. Among its more powerful features are modules for heuristic optimization and decision support tools such as MGA, a formal approach for generating alternatives.

Vitri's capabilities also include an asynchronous global-parallel genetic algorithm that is particularly suited for coarse-grained tasks executing on processors with large variations in processor speeds. By using dataflow techniques, in which computations are explicitly based on the availability and forwarding of data, the usual end-of-generation synchronization points are removed from the algorithm. Vitri has been used for design and optimization in such diverse areas as air quality management, water distribution systems, vehicle routing and scheduling, and structural optimization. Results of these studies indicate the adaptability of Vitri to various problems and its utility as a tool for building engineering decision support systems.

Releases

A new implementation of Vitri (Vitri 2.0) is now available for distribution. Source code is now included in this release, which may be freely distributed. In addition, the original release of Vitri (without source code) is still available and can be found below.

References

Contact

For more information about Vitri, contact John Baugh at NC State University.

Last updated: Mon Sep 12, 2016