Automatic Run-Time Communication and I/O Optimizations
MetadataShow full item record
As computing systems grow more complex, they also grow harder to use. On today’scommodity clusters, achieving some degree of speedup can often be easy, but achievingoptimal speedup is hard. Suboptimal use of shared resources like clusters not only increasesthe wallclock time for the individual job, but also decreases the throughput of theclusters and reduces the amount of resources available for other researchers. At the sametime, improving application efficiency often requires much more time of the researchers,which reduces the time they can spend on other research tasks. The goal of this thesis is to present a series of automatic optimizations that allow researcherswriting parallel applications to use simple and understandable programmingparadigms while getting close to the performance of hand optimized code. In this dissertation,we specifically focus on node-to-node communication and file I/O operations ofparallel applications using MPI. The core of our ideas are being presented in the papersincluded as part of this work. The optimizations are injected at run-time through a library that is loaded into the application.No recompilation or even access to source code of the application is necesary. Whenthe application issues a communication request or a file operation, our injected library interceptsthe request, and the request is then issued in an asynchronous and non-blockingmanner. At the same time, the memory area the application used for the request is protectedfrom access. This allows the request to continue in the background, and we canensure data consistency. Memory protection does have some overhead due to updating the page tables and flushingthe buffers of the CPU. To overcome this, modeling has been developed which allowsaccurate prediction of overhead and request completion times. This ensures that suchoptimizations will only be performed when they are beneficial. Additionally, several optimizationsto the page protection itself are presented, which reduce the effective overhead.Further reduction of this overhead is an ongoing research topic.