Emerging Applications Homework

Mini Presentations due on Tuesday 4/15/03


The goal of the homework is to study the characteristics of emerging applications. The applications listed below are expected to consume most of the processor cycles in future systems and are known to be difficult to support with existing architectures.


Working in a group of 3-4 students, you will produce a 10-minute presentation on the requirements and trends of one application area. The presentation will be given during the Tuesday 4/15 class meeting. You will also produce a longer version of your presentation (or a write-up) that will be included in the lecture notes.


We are interested in exploring as many of the following characteristics as possible:

  • Quick summary of their functionality (what do they do).
  • Data set and working set size.
  • Computational complexity as function of data set.
  • Arithmetic operations to memory operations ratio.
  • Memory access patterns and caching behavior.
  • Types of parallelism they include (data-, instruction-, thread-level) and balance.
  • How uniform is their behavior during the execution.
  • What are the bottlenecks on current computer systems (performance/power/cost).
  • What are the future scaling trends (requirements or functionality).
  • What are the benchmarks that characterize this area.
  • What custom hardware is used with such benchmarks.


The 10-minute presentation should include the most significant characteristics, while the longer version should provide a more complete presentation of your findings, along with a listing of the references you used. The format of the presentations/write-up should be informal.


For some of the above you may be able to find quantitative data, while for others you may only be able to find or generate qualitative arguments. Some good sources of information are:

·        Time and profile one such application (if you have access to the source code or executable).

·        Architecture papers that analyze the performance of such applications on current or future systems (use Citeseer for bibliography searches).

·        High-level papers that describe the state of the art and future trends in this area (IEEE Computer, Proceedings of the IEEE, ACM Computing Surveys, Communication of ACM).

·        The web-pages of research groups working on such applications (at Stanford or elsewhere).

·        Stanford graduate students or faculty working on such applications.

·        The web (e.g. Google).


Some of the application areas listed below are not as mature or as well characterized as others. Don’t let this discourage you. It is a common case in systems research: you try to design today systems for the applications of tomorrow

Groups & Applications


Group 1: Honggo, Varun, Arjun, Navneet

Applications: Multimedia applications

Examples: 3-D graphics, video compression/decompression, animation, image processing, medical imagining, image synthesis… 


Group 2: Metha, Janani, John Kim

Applications: Networking applications

Examples: TCP/IP routing in WAN/LAN environments (control & data plane), voice over IP, storage over IP, signal and protocol processing for wireless…


Group 3: Paul, Garret, Abhyudaya

Applications: Security applications

Examples: public key encryption, private key encryption, authentication, electronic signatures, electronic cash…


Group 4: Amin, Sorav, Chi, Shivnath

Applications: Enterprise applications

Examples: on-line transaction processing, data-mining, web servers, video servers, file servers, java applications servers, mail servers…


Group 5: Jayanth, Jing, Lark-Hoon, Rohit

Applications: Scientific applications

Examples: weather forecast, protein folding and modeling, mechanical and chemical modeling, radar processing, data visualization…


Group 6: Wajahat, Ernesto, Rebecca

Applications: Recognition applications

Examples: voice recognition, visual recognition, hand-writing recognition…


Group 7: Brad, Jean, Joel, Ilya

Applications: Probabilistic & machine learning applications

Examples: modeling of neural systems, genetic algorithms, learning algorithms, robotics…


Group 8: Suzy, John Whaley, David

Applications: Verification applications

Examples: formal verification of hardware/software/protocols, static and dynamic bug detection in hardware…