UCLA Parallel Computing Laboratory

Parsec or NS?

Rainbow Line

Why We Chose Parsec over NS

We carefully evaluated and compared NS and Parsec before we made our final decision to use Parsec as the simulation language for our AWC simulation. Our decision was based on several important factors, outlined below:
  1. Parsec (the next generation of Maisie) scales much better than NS since it is specifically designed to allow one to write a simulation that can be run on MPP's, NOW's, etc. This allows Parsec to support simulations with potentially thousands of nodes. We thought this was an important fundamental advantage that Parsec offers over NS since one can not necessarily interpolate the results of a small scale simulation to predict a protocol's behavior in a large-scale topology.
  2. Parsec is well-suited for our simulation since it offers good support for high-level (application level) simulations (it offers a very nice, easy, and clean message passing infrastructure). It seemed to us that NS is currently geared more towards low-level protocol simulations, and it seemed to provide minimal support our simulation. NS is great for monitoring and analyzing packet traces and queue behavior, but we are not interested in these low-level details.
  3. Although we were aware at the time of our decision that NS offers superior networking modules (accurate TCP, mcast, etc. modules), we also realized that an extensive effort was underway to add similar modules to Parsec. In fact, the main modules from each of the classical ISO-OSI 7-layer protocol stack now exist for Parsec (this includes, TCP, IP, DVMRP, etc). This effort continues with RSVP and oher modules currently being developed. (I'm not sure if they are currently working on any traffic generators, but I don't see why they couldn't do this if they wanted to.) We plan to integrate these new modules into our current simulation in the future. We also plan to see if we can interface a topology generator to our simulation (and perhaps Parsec in general) and use actual web traffic data to drive our simulation.
  4. Although we were also aware that NS offers a Network Animator (NAM), we didn't think that this provided any advantage; for it seems that NAM animates packet traces generated from NS simulations. Since we are not interested in such low-level details, we did not see any usefulness from NAM (In addition, very little documentation on NAM existed at the time. In fact, they were not even releasing the NAM software then). We were more interested in building a GUI that would allow us to graphically view and analyze the behavior of the CGMP and CRP protocols in an intuitive, efficient, and effective manner. As an aside, the Parsec group is currently working on a general GUI builder for Parsec. This will allow Parsec users to easily build GUI's similar to ours or NAM's in a more or less visual environment. The Parsec people are also working on a visual programming interface to the Parsec language itself (similar to Visual Basic or Visual C++).
  5. Practically speaking, we felt that building our similution using Parsec would be substantially easier and faster than doing so using NS. There are several reasons for this:
    • Building our simulation using NS would have required us to modify, augment, and become intimately acquainted w/ the internals of NS (its implemetation). Even if we just wanted to build a simple test program to send a simple message from once cache server to another, this would have been non-trivial using NS. By contrast, Parsec provides a nice level of abstraction and provides an extremely simple interface to its various capabilities (message passing, simulation time, message queues, etc). In fact, after reading the relatively good and concise documentation on Parsec (which took about 1.5 hrs), we were immediately able to implement the aforementioned test program in 5 minutes. Thus, Parsec seems to also be more scalable than NS in the sense of the learning curve as a function of the number of modules.
    • Using Parsec was made easy by its good and concise on-line documentation. By contrast, we found the on-line NS documentation available from its home page at Berkeley inadequate for our needs. Although this documentation explained in detail the various networking modules available in NS, it said nothing about how one can extend the simulation language. In addtion, there was no NS workshop available at the time of our decision.
    • Parsec's nice abstractions and ease of use directly contribute to cleaner, more concise code, which in turn lead to more maintainable and robust code (I have heard of several studies that show a strong correlation between code size and the number of bugs in the code). These are important considerations especially if we plan to make our code available to the public to use. These factors also help to maximize our efficiency, which may be critical in helping us to meet our tight deadlines.
    • We felt that an important advantage existed in the fact that the implementors of Parsec were just a few offices away (Parsec was developed by Prof. Bagrodia's group at UCLA). We thought that this could be useful if we had any special feature requests, critical bug reports, or detailed technical questions (and in fact, this proved very useful since we did have a minor feature request and had several detailed technical questions).
    • The fact that NS uses oTcl as a the scripting language to "glue" the various modules together added additional learning overhead since none of us were particularly familiar with oTcl. In addition, getting our new modules to work correctly with Tcl could also add additional complications (and none of us were familar with the Tcl debugger; Parsec programs can be debugged with any C debugger including gdb and Sun's debugger.)
    • From a pragmatic standpoint, since our work on the AWC/CGMP simulation was also the basis for our class project, we were under severe time constraints (UCLA is on a 10 week quarter system and we spent the first 2 weeks of class choosing project groups and ideas. Plus we had to reserve the last 2-3 days to write our 10+ page report :). Thus, minimal learning overhead, ease of use, and fast resolution of potential problems were particularly important to us.
  6. Although NS is probably more widely used than Parsec/Maisie (especially in the network research community), Parsec/Maisie has been/is being used by various companies in industry and universities including BBN, UKansas, IBM Yorktown Heights, and UCLA. It has been used extensively here at UCLA for various network simulations including wireless and ATM. Most notably, it is being used by the GloMo project.
  7. Finally (yes, finally :), it wouldn't be much work for us to make our CGMP (and later CRP) modules available to the networking community to use as Parsec modules (or more accurately, "Parsec entities"). These entities could be easily incorporated into another Parsec simulation. I believe we made the right decision... I have had a very positive experience with Parsec, and I think it serves our needs well.

    Khoi Nguyen and Adam Rosenstein and Nathan Sturtevant


Return to Parsec Home Page.


This web page developed by Monnica Terwilliger. Bad link? Send e-mail to monnica@cs.ucla.edu.
Last updated: Friday, 23-Jul-1999 15:26:54 PDT