RAPTOR (Routing Assignment Program for Transparent Optical Routes) is a software package developed by Timothy Hahn for simulating optical networks. The program is highly flexible and can be extended to run most RWA algorithms with minimal work. Early results show that RAPTOR is also very fast, which should allow it to run larger and more complex scenarios.
RAPTOR is a custom built application using mostly ANSI C++. There are approximately 7,000 lines of source code, of which 3,000 lines are header files. The program has been compiled and tested using Microsoft Visual Studio .NET 2003 on Windows XP and g++ version 4.1.2 on Red Hat 4.1.2, although it is believed that RAPTOR will run on any platform with a C++ compiler and the appropriate libraries. There are only 3 external dependencies required to run: Boost, Matlab, and PThreads.
Boost is a freely available, peer reviewed library written in C++. Boost provides a large array of functionality, such as a sophisticated graph library and a matrix library, however, RAPTOR only uses the random number generation. Boost is available on almost any modern operating system. We used version 1.34 in our simulation, however, I believe that any recent version of Boost is sufficient.
Matlab is a commercially available mathematical computing environment and programming language maintained by MathWorks, Inc. Several of the Q-factor calculations are written in Matlab, so their compiler is required to create a library used by RAPTOR. Once the library is compiled, the freely available Matlab Component Runtime library is sufficient to run the application. We used versions R2007a and R2007b in our simulations, however I believe that any recent version of Matlab is sufficient.
POSIX Threads, or PThreads, is a library used to create and manipulate threads. PThreads are most commonly used in Linux, however versions are available for Windows as well. RAPTOR utilizes PThreads to run on multi-core machines and to mutex lock certain critical sections of the program.
KShortestPath is a library used to calculate the k-shortest-paths using Yen's Ranking Loopless Paths Algorithm. This library is written completely in ANSI C++. The worst case running time is O(kn(m + n log n)).
Efficiency was a large concern when designing RAPTOR. On the 24 node mesh network presented in "Connection Provisioning With Transmission Impairment Consideration in Optical WDM Networks With High-Speed Channel" the SP algorithm with First Fit wavelength assignment (SP-FF) runs in less than a minute using RAPTOR requiring less than 50 MB of memory. This efficiency, both in run time and memory usage, will permit us to run larger and more complex scenarios in the future.
RAPTOR has achieved even further performance gains using multi-threading. RAPTOR creates t threads, where t is a user configurable number. Each thread is tasked with a single data point (an algorithm and traffic load) until all traffic loads for all algorithms are completed.
Use Patent Claims
Include Install Instructions
These details are provided for information only. No information here is legal advice and should not be used as such.