Automatic Out of Core Execution Support

Many computationally intensive parallel applications are also memory intensive. Even when the memory required for a particular application is larger than the available memory, the virtual memory system permits the program to run, but the substantial cost of taking expensive PageFaults involving disk accesses. Since the application developers will have a better idea of the application's memory usage than the OS, Out-of-core techniques are often developed for each application seperately.

We present a generic, application dependent techniques that automatically improve paging performance. The 3 methods we explore are:

  • Prefetching: In this method the converse scheduler creates a extra thread in which the page faults are taken by effectively overlapping the pagefault time with the application's computation time
  • Multi-threaded Object Memory Management: In this scheme the new thread in the Converse scheduler effectivelt does the complete object memory management i.e; the Converse scheduler will decide which objects will be in memory and which should be kicked out of memory. Essentially, we are exploiting the Converse Scheduler's look ahead Queue to guess the applications's memory access pattern and use it as the "working set" for the memory management. So all the "Page Replacement Algorithms" are effectively useful here.
  • This method is similar to the previous method, except that to avoid the overhead involved in the extra thread (context switching time, synchronization issues), using Asynchronou I/O in a single thread of converse to do the Object Memory Management.
     

  • This page maintained by Sayantan Chakravorty. Back to the PPL Research Page