Remote Function Invocation Running a Single Program On


























- Slides: 26
Remote Function Invocation Running a Single Program On Multiple Computers
Thesis • Single Program • Single Computer • Serial Processing
Antithesis • Multiple Programs • Multiple Computers • Cooperate on Single Problem via Messages
Synthesis • Single Program • Multiple Computers
Raises Questions • Existing mechanisms? • Message-passing necessary? • Comparison of Metrics? • Anything we can exploit? Use?
Objectives • Develop the mechanism • Benchmark RFI • Demonstrate: – Running existing program on cluster – Exploitation of new opportunities presented by RFI
Programs • Native Code • Virtual Platform RFI exists
Developing Rexel • Remote Execution Environment for Linux
Node Setup • Simple Comms – Store libfile. so – Register function – Call function
Function Calling • Few major problems • Trade-offs acceptable • Uses dlopen() and dlsym() • Uses Libffi for calling convention
Usage • Usage (mostly) automatic • Needs runtime linkage • librexelmaster. so – Configured exclusively from config files
Test Setup • Benchmarked against MPI • Setup carefully controlled • System representative of cloud providers • Problem-space exhaustion
Speed (1/2)
Speed (2/2)
Speed Overall Predictability
Consistency (1/2)
Consistency (2/2)
Summary Rexel MPI • Quicker at lots of smaller problems • Slower when number of repeated calls increase • Predictable and consistent throughout • Slower when problem is divided into tiny chunks • Faster as problem-size of each chunk grows • Unpredictable with tested criteria
Future? Rexel MPI • Performance improved towards the end • Consistency improved towards the end
Running SQLite (1/2) • SQLite: – Small standalone database – Has c/line interface – Stores all data in a single file
SQLite (2/2) • Run in LD_PRELOAD environment • Unaware of Rexel • Mixed results – Successfully wrote files – Nodes could not return errors
Partial Shared-Memory • Expressions represented as trees • Leaf nodes are operands • Branch nodes are operators
Solving Expressions • Solved recursively • Independently
Concurrent Solving
Research Answers • Mechanisms exist • Replacement possible for both shared-mem and MPI • Large effects on software design • Multiple opportunities to exploit
Future Opportunities • Can have an impact on program design • Quorum Solving • Fine-grained Unittesting • More? ? ?