Remote tasking encompasses different functionality, such as remote forking, multiple remote spawning, and task migration. In order to overcome the relatively high costs of these mechanisms, optimizations can be applied at various levels of the underlying operating system or application. Optimizations include concurrent message transmission, increased throughput and reduced latency at the distributed IPC level; batching, overlapping, and pipelining at the remote tasking level; and multithreading at the application level. Of particular interest is the resulting concurrency, since in a complex program, it may be a dominant performance factor. Distributed IPC is typically characterized by throughput and latency. However, many design and implementation details important for real application performance remain unobserved by this simple characterization. This paper describes distributed IPC from a remote tasking point of view. Remote tasking exercises all aspects of distributed IPC extensive...
Dejan S. Milojicic, Alan Langerman, David L. Black