DagSemProc.05141.6.pdf
- Filesize: 383 kB
- 15 pages
Compiler support for power and energy management has been shown to be effective in reducing overall power dissipation and energy consumption of programs, for instance through compiler-directed resource hibernation and dynamic frequency and voltage scaling. The multi-programming model with virtual memory presents a virtualized view of the machine such that compilers typically take single programs as input, without the knowledge of other programs that may run at the same time on the target machine. This work investigates the benefits of optimizing sets of programs with the goal of reducing overall disk energy. The two key ideas are to synchronize the disk accesses across a group of programs thereby allowing longer disk idle periods, and to utilize execution context knowledge to allocate maximal buffer sizes. The compiler inserts runtime system calls for profiling the application and disk, uses execution context in allocating buffers, and synchronizes disk accesses with an inverse barrier policy. Data prefetching has been added to mitigate the overhead of synchronization. Experimental results are based on three streaming applications and their subsets. The experiments show that inter-program optimizations can have significant disk energy savings over individually optimized programs. Applying the most aggressive inter-program optimizations result in energy savings of up to 49%, and saving 34% on average.
Feedback for Dagstuhl Publishing