Runtime Systems and Tools: 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 with 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 separately. We present a generic, application dependent technique that automatically improves paging performance. The 3 methods we explore are: # Prefetching: In this method, the converse scheduler creates an 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 effectively 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 subsequently 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.
People
Papers/Talks