Full Title
Download

The RAPID platform provides an offloading mobile platform, which can be used for offloading:

  • normal Java/Android methods;
  • native C/C++ methods embedded in Java/Android applications;
  • GPU CUDA functions embedded in Java/Android applications.
In short, RAPID offers a framework that developers can embed in their application and use it to transparently execute the heavy methods on a powerful machine, which is commonly deployed on the cloud. The platform can be used by application developers, researchers, and service providers. Depending on the category you fall in and on the Operating System you want to use, please follow the instructions below to download and use/install the appropriate RAPID components and/or source files.

The following picture gives a high-level representation of the main components of RAPID.
  • Acceleration Client (AC): is the part of the framework to be embedded by application developers for transparent computation offloading. The AC will decide at runtime if a method can be offloaded for remote execution and if it is beneficial doing so (in terms of execution time).
  • Virtual Machine (VM): is a machine running on the cloud, with the same operating system of the client device. The VM will take care of executing the code offloaded by the AC from the client device. In RAPID, each client has his own VM, to avoid security and privacy issues.
  • Acceleration Server (AS): is a software component that runs in the VM and is the one that takes care of executing the offloaded methods. If the method to be executed contains CUDA calls, then the AS delegates the execution of these functions to the GPU-Bridger, which runs on a special VM that has access to the GPU of the physical machine (or cloud).
  • GPU-Bridger: is a component that virtualizes the GPU. It has direct access to the GPU of the physical machine and is able to execute the CUDA calls for other applications.
  • Virtual Machine Manager (VMM): is a component that runs on the physical machine (or cloud), responsible for starting, stoping, pausing, destroying, and monitoring the VMs.
  • Service Level Agreement Manager (SLAM): is a component that deals with monitoring the Quality of Service (QoS) of all the clients.
  • Directory Server (DS): is a central component that orchestrates devices' registration and resource allocation.
More detailed information about the RAPID infrastructure and RAPID Programming Model can be found in the following deliverable: RAPID System Components and Programming Model.

RAPID Components

Application Developer

If you are an Application Developer who wants to offload tasks on the RAPID platform, hosted by the RAPID project, then you do not need to deal with the high-level components related to resource allocation, monitoring, etc.
Specifically, in this case, the only RAPID component of interest for you is the AC.

  • Android: if you are developing an Android application, you need to embed the Android RAPID AC on your application and use the RAPID Programming Model to instruct the AC about the offloadable methods. To facilitate the quick adoption of the framework, we provide a demo application that can be downloaded from here.

  • Linux/Windows: if you are developing a Linux or Windows application, you need to embed the Linux/Windows RAPID AC on your application. To facilitate the quick adoption of the framework, we provide a demo application that can be downloaded from here.


Researcher

If you are a researcher who wants to work with both client and server side of the RAPID infrastructure, then you need to deal with the AC, AS, and GPU-Bridger components.

  • Android: On the server side, you need to create an Android VM with Android-x86. If you also want to experiment with CUDA code offloading, you also need to install the GPU-Bridger. In the latter case, the server physical machine should have a CUDA-capable GPU and should run Ubuntu OS. For the VM, we recommend using VirtualBox and Android-x86 7.1. However, RAPID functionalities are not affected by the virtualization software, so you are free to use your favorite virtualization platform. Next, on the VM you need to install the Android AS, which can be downloaded from here. The GPU-Bridger can be downloaded from here, where you can also read the installation details.
    On the client side, you need to follow the exact steps described on the previous section, as if you were an Application Developer. We highly recommend you to have a look at the RAPID demo application, where you can find more details on how to use the platform.
    Device-to-Device (D2D) Offloading: If you are interested on performing D2D offloading, then you can install the Android AS on a physical device instead of installing it on a VM.

  • Linux/Windows: On the server side, you need to create a Linux/Windows VM. If you also want to experiment with CUDA code offloading, you also need to install the GPU-Bridger. In the latter case, the server physical machine should have a CUDA-capable GPU and should run Ubuntu OS. For the VM, we recommend using VirtualBox, however RAPID functionalities are not affected by the virtualization software, so you are free to use your favorite virtualization platform. Next, on the VM you need to install the Linux/Windows AS, which can be downloaded from here. The GPU-Bridger can be downloaded from here, where you can also read the installation details.
    On the client side, you need to follow the exact steps described on the previous section, as if you were an Application Developer. We highly recommend you to have a look at the RAPID demo application, where you can find more details on how to use the platform.


Service Provider

If you are a Service Provider who wants to install the RAPID infrastructure on a cloud in order to provide a RAPID-based service please follow the instructions below.

  • Directory Server: Download and install the RAPID Directory Server on a machine with high reliability and accessibility.

  • SLAM: Download and install the SLA Manager.

  • VMM: Download and install the VM Manager.

  • Android AS: Create an Android VM image containing the Android AS.
    To create the Android VM, you can use one of the Android-x86 images. Then, download the Android AS from here and install it on the Android-x86 VM. The AS is configured to start automatically when the VM is booted. Finally, configure the VMM to use the Android image.

  • Linux/Windows Server: Create a Linux/Windows VM image containing the Linux/Windows AS.
    Download the Linux/Windows AS from here and install it on the VM as an executable jar file. Configure the OS to start the jar automatically when the VM is booted. Finally, configure the VMM to use the Linux/Windows image.

  • GPU-Bridger: If you want to run the GPU-Bridger on a VM, then create an Ubuntu VM with GPU Passthrough. Otherwise, you can decide to run the GPU-Bridger directly on the physical machine. In both cases, please download and install the component from here.

Seventh Framework Programme
EUROPEAN COMMISSION