| |
- 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
- Loop scheduling: Singly nested vs multiple nested
- Runtime overheads: Scheduling, synchronization, inter processor communication
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
|
|