Module 13: INTRODUCTION TO COMPILERS FOR HIGH PERFORMANCE COMPUTERS
  Lecture 25: Supercomputing Applications
 
  • Current software technology is unable to handle all these issues
  • Book keeping is still done by the users
  • Main directions of research
    • Design of concurrent algorithms
    • Design of concurrent languages
    • Construction of tools to do software development
      • Sequential compilers and book keeping tools
      • Parallelizing and vectoring compilers
      • Message passing libraries
    • Development of mathematical libraries
  • Languages Fortran, C, Java, X10 etc.
  • Dusty decks problem
    • Conversion of large body of existing sequential programs developed over last 40 years
    • Several billions lines of code and manual conversion is not possible
    • Restructuring compilers are required

Important Problems

Restructuring

  • Identify parts of program to take advantage of characteristics of machine
  • Manual coding is not possible
  • Compilers are more efficient

Scheduling

  • Exploit parallelism on a given machine
  • Static scheduling: done at compile time
  • Dynamic scheduling: done at run time
    • High overhead
    • Implemented through low level calls without involving OS (auto scheduling compilers)
  • Auto scheduling compilers
    • Offer new environments for executing parallel programs
    • Small overhead
    • Parallel execution of fine grain granularity is possible
  • Loop scheduling: Singly nested vs multiple nested
  • Runtime overheads: Scheduling, synchronization, inter processor communication