About the project
The acronym stands for:
Multi-programmation et Ordonnancement sur ressources distribuées pour les Applications Interactives de Simulation
prograMming and scheduling design on distributed resOurces for Applications based on Interactive Simulation
Strength in numbers
MOAIS focuses on the programming of applications where increasing the number of resources is a key to improve performance: beyond the optimization of the application itself, the effective use of a larger number of resources is expected to enhance the performance. This encompasses large scale scientific interactive simulations (e.g. immersive virtual reality) that involve various resources: input (sensors, cameras, ...), computing units (processors, memory), output (videoprojectors, images wall) that play a prominent role in the development of high performance parallel computing.
The research axis of the MOAIS team are focused on the scheduling problem with a multi-criteria performance objective: precision, reactivity. The originality of the MOAIS approach is to use the application's adaptability to enable its control by the scheduling. The critical points concern designing adaptive malleable algorithms and coupling the various components of the application to reach interactivity with performance guarantees.
GrImage is a virtual reality platform that recreates 3D models of persons, objects... from live video camera feed.
To execute this in real-time, a considerable amount of computational power is required. The kind of power that would be very expensive if we were to build a single, top-of-the-line computer. Moreover, even such a computer would not have enough interfaces to accomodate all of the cameras. Hence, using a cluster here is more than saving money by using cheaper computers: it is a hardware requisite.
But here, as application programmers, we run into a tricky question. How exactly would you go about to code your application so as to harness the power of a cluster? Granted, parallel programming is quite straightforward when all you have to do is simple matrix math. At this level, tools such as MPI work wonders. But what about complex user applications, where you have to factor in multiple, heterogeneous input sources (keyboard, haptic devices, video cameras...) located on different computers? What happens when all the pieces of your software need to talk to one another at some point?
Specification becomes critical. The number and the complexity of the interactions quickly grows out of grasp without a formal way to represent them; not to mention how cumbersome handling low-level sockets would be when the time comes to implement them.
It would be wise to design an additional layer of software that lets you separate your code in blocks, and formally express the connections between them. Before you saddle up and start burning through your keyboard, there is something you might be interested in.
Over the years, we have developed the FlowVR Suite. It provides you with a framework that does all of the above right out of the box, plus a little convenience.
Here is a simplified explanation of how it works:
- You specify your blocks of code as "modules".
- You give them input ports, output ports, and specify message exchanges between ports.
- Then, you specify the machine names where you want your modules to run.
FlowVR is one of several open-source products developed through the years, along research work.
Research axis of MOAIS are directed towards:
- Scheduling. To formalize and study the related scheduling problem. The critical points are: the modelization of an adaptive application; the formalization of the multi-criterion objective; the design of scalable scheduling algorithms.
- Adaptive parallel and distributed algorithms design. To design and analyze algorithms that may adapt their execution under the control of the scheduling. The critical point is that the algorithm is parallel and distributed; then, adaptation should be performed locally while ensuring the coherency of results.
- Design and implementation of programming interfaces for coordination. To specify and implement interfaces that express coupling of components with various synchronization constraints; the critical point is to enable an efficient control of the coupling while ensuring coherency.
- Interactivity. To improve interactivity, the critical point is the scalability; the number of resources (input and output devices) should be adapted without modification of the application.
Interactive simulation applications take benefit of increasing the number of resources:
- Simulation: clusters and grid are used to increase the computing power (processors and memory space), thus imrpoving precision.
- Interaction: the application control is related to the quality and number of input resources (sensors, cameras, microphones).
- Rendering: a high quality visualization requires a large display with a high pixel density obtained by stacking multiple projectors or screens. Extra information can be provided to users through sound rendering or haptic systems.
In this interactive context, performance is a global multi-criteria objective associating precision, fluidity and reactivity.
Programming a portable application requires to suit to the available resources. The application program relies on smart scheduling to be adaptive. Thus, fundamental researches undertaken in the MOAIS project are focused on this scheduling problem which manages the distribution of the application on the architecture.
The members of MOAIS have an expertise on the scheduling problem. The originality of the MOAIS approach is to use the application's adaptability to enable its control by the scheduling:
- The application describes synchronization conditions.
- The scheduler computes a schedule that verifies those conditions on the available resources.
- Each resource behaves independently and performs the decision of the scheduler.
To enable the scheduler to drive the execution, the application is modeled by a macro data flow graph, a popular bridging model for programming (BSP, Nesl, Earth, Jade, Cilk, Athapascan, Smarts, ...) and scheduling. Here, a node represents the state transition of a given component; edges represent synchronizations between components. However, the application is malleable and this macro data flow is dynamic and recursive: depending on the available resources and/or the required precision, it may be unrolled to increase precision (e.g. zooming on parts of simulation) or enrolled to increase reactivity (e.g. respecting latency constraints). The decision of unrolling/enrolling is taken by the scheduler; the execution of this decision is performed by the application.
International and industrial relations
MOAIS is a partner of the network of excellence CoreGRID, the FP7 infrastructure project Visionair, the French project Grid'5000. International academic collaborations include Idaho State University (USA), Universidade Federal do Rio Grande do Sul (Porto Alegre, Brazil) and Universidade de São Paulo (Sao Pãulo, Brazil). Among the industrial partners are STMicroelectronics, EDF and Bull companies.
MOAIS is a partner of the network of excellence CoreGRID, the French project Grid'5000 and the experimental platform GrImage. International academic collborations include Idaho State University (USA), Universidade Federal do Rio Grande do Sul (Porto Alegre, Brazil) and Universidade de São Paulo (Sao Pãulo, Brazil). Among the industrial partners are STMicroelectronics and Bull companies.