Module 2: "Parallel Computer Architecture: Today and Tomorrow"
  Lecture 3: "Evaluating Performance"
 

The computer market

  • Three major sectors
    • Desktop: ranges from low-end PCs to high-end workstations; market trend is very sensitive to price-performance ratio
    • Server: used in large-scale computing or service-oriented market such as heavy-weight scientific computing, databases, web services, etc; reliability, availability and scalability are very important; servers are normally designed for high throughput
    • Embedded: fast growing sector; very price-sensitive; present in most day-to-day appliances such as microwave ovens, washing machines, printers, network switches, palmtops, cell phones, smart cards, game engines; software is usually specialized/tuned for one particular system

The applications

  • Very different in three sectors
    • This difference is the main reason for different design styles in these three areas
    • Desktop market demands leading-edge microprocessors, high-performance graphics engines; must offer balanced performance for a wide range of applications; customers are happy to spend a reasonable amount of money for high performance i.e. the metric is price-performance
    • Server market integrates high-end microprocessors into scalable multiprocessors; throughput is very important; could be floating-point or graphics or transaction throughput
    • Embedded market adopts high-end microprocessor techniques paying immense attention to low price and low power; processors are either general purpose (to some extent) or application-specific

Parallel architecture

  • Collection of processing elements that co-operate to solve large problems fast
  • Design questions that need to be answered
    • How many processing elements (scalability)?
    • How capable is each processor (computing power)?
    • How to address memory (shared or distributed)?
    • How much addressable memory (address bit allocation)?
    • How do the processors communicate (through memory or by messages)?
    • How do the processors avoid data races (synchronization)?
    • How do you answer all these to achieve highest performance within your cost envelope?