A quick walk-through of my researchComputers are getting faster and the networks are getting more prevalent. That's a fact. The trend is expected to continue, thanks to the unrelenting innovations and technological advances from computer science research, particularly in the areas of computer systems and computer networks, which I'm generally interested in. These faster machines, such as those high-performance parallel computers (check out the top500 supercomputer site) and the more prevalent global computer networks, such as the Internet, are very large and very complex engineering systems. Simulation is someone using a computer to imitate the operations of either a real-world or a fantasy-world (theoretical) process. What happens is that a computer program (called a model in simulation terminology) is developed and run. Data generated by the computer program is gathered and used to estimate the behavior of the system. The hope is that running the model in a controlled experimental condition can bring us insights to the target system. Believe it or not, simulation has been used extensively to understand the dynamics of these systems, to evaluate the performance of these systems under various conditions, to prototype new system designs, and to experiment with alternative solutions with different design parameters. Simulation complements mathematical/analytical models and physical testbeds as the the third leg of science, providing quantitative results to system studies under complex situations. As you may have guessed, modeling a real-world large-scale system is quite a challenging task. This is mainly because the systems that we would like to simulate are typically very very big and quite complex. For example, you can think about what it takes to simulate a global network that is representative of today's Internet. By representative, I mean the simulation model should capture the true characteristics of the Internet in such a way that one can study interesting network phenomena using this model. So what does it take to develop such a model? First things first. We need to understand the target system itself. Now if you designed a computer system, you'd know all the details about the system. But for some systems, no one actually has an exact picture. An example of this is the Internet. What does the Internet exactly look like as for now? I bet no one knows. What's the network's topology? That is, how are the computers connected through routers and links? Also, how's the data being transfered on the network? How is the data being generated in the first place? That should help us determine the traffic load on the network. What transport protocols are used to transfer the data and what routing protocols are used to ensure the data to be delivered to its destinations? Even if we were able to create a representative model, running this model on a computer would still generate a slew of problems. A detailed simulation of a large-scale model requires tremendous amounts of computing power and memory space. You wouldn't be able run such a simulation program on a computer today, simply because the computer's memory just isn't big enough to store the entire state of the model. Even if you could run it, it would take a long time to run. Each second of the model you simulate might take hours of your machine time. By now it should make sense to you of my research area. I am interested in simulation and modeling of large-scale complex computer systems and computer networks. In particular, my research focuses on high-performance simulation of large-scale computer networks. In essence, I develop efficient simulation models of the Internet and other large-scale systems alike (such as wireless mobile networks with many many nodes). There are several techniques that have been developed. Parallel discrete-event simulation (PDES) is a technique of using parallel computers (with a large number of processors put together) to run a single simulation program. All supercomputers today are parallel computers. PDES harnesses the collective computing power of the parallel computers. More importantly, the collective memory of the parallel computers makes it possible to run large models. PDES isn't easy; all the processors in the parallel machine must be synchronized nicely so that they can get the work done together without introducing too much overhead that could easily spoil the appeal of this approach. PDES has sparked intensive research activities over the last two decades. Another technique developed recently is to run models at different modeling resolutions within the same simulation framework. You can simulate the operations of the Internet packet by packet. That is, you can model each packet being forwarded from one router to the next in the network as a simulation event. Alternatively, you can model the entire data transfer from the source to the destination as a single fluid flow. You can imagine we turn on the faucet letting the water run through a network of pipes. Another type of model is to represent the traffic flows on the Internet as a set of differential equations. In any case, different network models incur different computation cost. Reducing the cost obviously can enable us to simulate larger models within the same computing budget. Scalable network simulation has developed into an interesting research topic by itself. I'm also interested in running large-scale simulation models in real time. That is, every simulation second should correspond to one wall-clock second. One of the reasons to run the simulations in real time is that we can tinker with a simulation model as if we are interacting with the target system. Applying this idea to network simulations, the goal is that we could have an immersive network simulation environment for network researchers. Here, "immersive" means that, from the operator's standpoint, the simulated network should not be distinguished from the real system. The story isn't quite finished here. There are still a lot of other open problems that need to be solved. But I'm running out of time here. Please feel free to contact me if you want to discuss more of the interesting research problems in this line of research. Drop by my office if you like. |