Recent Research Contributions
  • Concordia Parallel Programming Environment (CPPE).

    CPPE supports system-independent parallel programming, execution, debugging, and performance fine-tuning with user-friendly integrated visual user interfaces implemented with MFC on NT systems, Motif on Unix systems, and Java applets for web browsers. CPPE covers sub-projects including:
    • Design of language CPC (Concordia Parallel C) that supports the new virtual architecture approach and delayed mapping to support portable programming on both multicomputers and multiprocessors
    • Design and implementation of compiler CPCC (CPC Compiler) that supports complete abstract syntax tree generation, various program transformations, and CPSS virtual code generation
    • Design and implementation of CPSS (Concordia Parallel Systems Simulator) with the following unique features:
    • On-line configuration of simulated system for most existing parallel systems
    • On-line specification of process mapping and optimized mapping libraries
    • On-line simulation of most communication subsystems that include wormhole routing, packet switching, and multistage interconnection networks
    • Support of industry standard MPI, which enables CPPE to be an ideal tool for studying system support for MPI performance and MPI code development
    • Full range of debugging support for performance debugging (performance bottleneck detection and fine-tuning) as well as traditional debugging
    • Application-Service-Provider (ASP) version of CPPE that enables most of CPPE functions available through the Internet to remote users' Web browsers

In many parallel computing research labs, CPPE is replacing MIT's Proteus and Stanford's Tango as the new generation of research tools on parallel programming systems. Many invited lectures on CPPE also proved its acceptance by the parallel computing community.

But the contribution of CPPE does not stop at parallel computing. Our functional simulation techniques and thread management techniques developed for CPSS have important applications in Java-based technologies: CPSS is analogous to a Java virtual machine with rich support for parallel computing.

The following is a sample run of CPPE on Windows. The CPPE simulates 64 processors to calculate the multiplication of two 8x8 matrices in parallel.

  • System-independent parallel library system design and implementation

    Main achievements include the design and prototyping of a system-independent library for parallel computation; dynamic binding to system topology; run-time automatic grain-size adjustment; data redistribution; and process mapping. One Ph.D. student has graduated with a thesis on the topic.

  • EPPP Project

    Principal investigator for project Environment for Portable Parallel Programming (EPPP) at Montreal Computer Science Research Center (CRIM), 1992 - 1995

    I initiated project EPPP, which was a 3-year project with a yearly budget of 4.2 million dollars. This is the largest project in Canada for parallel software. Fifty percent of its budget came from Strategic Technologies Program of Industry, Sciences and Technology Canada, the rest was provided by IBM Inc., DEC Inc., Alex Inc., and other computer companies.

    There were three major groups in this project: (a) language and compiler; (b) program mapping and data routing, and (c) tools. I was the leader of the second group.

    Finished research topics include task scheduling on workstation farms, task allocation on heterogeneous distributed or parallel systems.

  • Study on Application Service Provider (ASP) model of computing

    My in-depth study of distributed computing technologies, e-commerce technologies, component technologies, and application-service-provider models has led to the proposal of an integrated framework for general networked computing based on remote system integration. I have been invited to present my ASP perspectives to several international conferences on Internet computing. As a proof-of-concept project, we used CORBA technology to design and implement a distributed version of my CPPE project. The remote users can access my CPPE services through the Internet either as a standalone stub application, or as applets embedded in web pages. Experience has been gained on ASP application hosting and scalability of such applications.

  • Study on design, scalability, and implementation techniques of web servers. Our study aims at defining measures for evaluating e-commerce web servers, unveiling problems, bottlenecks, and proposing solutions and modifications to current designs. Main achievements include
    • Formalization of the concept of web scalability
    • Design and implementation of our Xwpt (X Web Performance Tool), which can simulate real world traffic attacks against Apache and IIS web servers.
    • Design and implementation of a pure-Java web server, which implements the full specification of the recent HTTP v1.1 including persistent connections and sessions. This server is an important research tool for studying server scalability and application-service-provider model of Internet computing. The implementation is based on Java Servlets.
  • Combinatorial optimization techniques and their applications to VLSI circuit partitioning, large database design, and data mining

    Main achievements include the design and implementation of algorithm NGSP for multiway hypergraph partitioning that outperforms significantly all existing multiway partitioning and bisection algorithms for hypergraphs for both running time and solution quality. The result is very important in VLSI design, large database design, and Internet data mining.

  • Stochastic probe approach to combinatorial optimization

    After in-depth study of simulated annealing and tabu search, I proposed a new Stochastic Probe approach to solve general combinatorial optimization problems. This approach takes advantage of the convergence property of simulated annealing and the aggressive search strategy of tabu search, produces very competitive optimization results for graph bisection, multi-way graph partitioning, program mapping, and VLSI circuit partitioning. The stochastic Probe approach has been cited frequently in operations research publications.

Research Home       Selected Publications      Research Grants

Home Education Professional Experience Research Teaching Dissertation Supervision Selected Links

Copyright ©2001 Lixin Tao