
WARPED Applications (included in the WARPED distribution)
| Scheduling | Lowest Time-stamp First (LTSF) Scheduling |
| State Saving Algorithms | Periodic (Fixed and Dynamic ) State Saving (currently Linn's, Fleischmann's, Ronngren's, and Palaniswamy's Adaptive State Saving algorithms are supported) |
| Memory Management Algorithms | 1. A simple variant of CustoMalloc
2. Brent's implementation of First Fit Allocation Strategy 3. Knuth's Buddy System Memory Allocation Strategy 4. A Segregated Allocation Strategy |
| Event List Management | Simple Sorted Linked List Data Structures (other data structures like heaps and trees will be added) |
| Cancellation Strategies | 1. Aggressive Cancellation
2. Lazy Cancellation 3. Dynamic Cancellation |
| GVT Estimation Algorithms | 1. pGVT (w/o message acknowledgement, assuming FIFO messaging)
2. Mattern's GVT Estimation Algorithm (assuming FIFO messaging) |
| Fossil Collection Algorithms | 1. A variant of Fujimoto's "on-the-fly" fossil collection algorithm |
| Communication Optimizations | 1. For distributed memory machines, the MPICH message passing library
is used for communication.
2. For clusters of SMPs (clumps), a combination of light-weight thread-based messaging *and MPICH is used. |
| Termination Algorithm | Simple circulating token-based algorithm |
These options are controlled by a configuration file. In addition, we assume a strict message passing paradigm using the MPI standard (we are using version 1.1.1 of MPICH). All development has been performed using various versions of the GNU g++ compiler. The current version requires at least version 2.7.0 and we have been using 2.7.2.1 (and later versions).
The parallel WARPED kernel will also has configuration parameters to cause the collection and reporting of various statistics regarding the simulated system. In addition, a set of debug capabilities are included.
The WARPED kernel has been analyzed using Pure (now Rational) Software's suite of performance analysis tools, namely: purify, quantify, and purecov. Purify is a tool that detects run-time memory leaks and corruption errors. Purify also allows for the detection of many other types of errors, such as free memory reads, deleting memory multiple times, and stack corruption. The current version of WARPED has been extensively tested with purify and has been shown to run for hours without memory loss. Quantify and PureCov have also been useful in the analysis and tuning of WARPED. Quantify is a code profiler that works via basic block counting. With this information, the appropriate sections of the kernel can be tuned for greater performance. PureCov is a code coverage tool that can point out, on a per-line basis, what code has actually been executed. Code marked as unexecuted can then be analyzed, and removed if necessary or exercised with additional tests to ensure its integrity.
Nael Abu-Ghazaleh, Vijay Balakrishnan, Curtis Brunswick, David Charley, Malolan Chetlur, Peter Frey, Balakrishnan Kannikeswaran, Venkatram Krishnaswamy, Dale Martin, Tim McBrayer, Lantz Moore, Avinash Palaniswamy, John Penix, Krishnan Subramani, Radharamanan Radhakrishnan, Raghunandan Rajan, Umesh Kumar V. Rajasekaran, Dhananjai Madhava Rao, Girindra D. Sharma, Ardhendu Singh, Krishnan Subramani, Karthik Swaminathan, Narayanan Thondugulam, Chris Young, Philip A. Wilsey.
This research was supported in part by the Advanced Research Projects
Agency, monitored by the Department of Justice under contract number
J-FBI-93-116. In addition, we benefited greatly from the technical support
and guidance by the ARPA and DOJ program managers, notably: Bob Parker,
John Hoyt, and Lt. Col. John Toole. Without their support and interaction,
the work documented on this web page would not have been possible.
Thank you.