Menu:

Info:

The MOAIS Project is part of the LIG together with the MESCAL Project.

Institutions:

LIG
CNRS
Grenoble INP
INRIA
UJF
UPMF

[MOAIS]

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.

Research themes

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.

Practical applications

GrImage is a virtual reality platform that recreates 3D models of persons, objects... from live video camera feed.

[GrImage]

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:

Thanks to the framework, deploying and running the application over the network will now take you just one command.

FlowVR is one of several open-source products developed through the years, along research work.

Objectives

Research axis of MOAIS are directed towards:

Interactive simulation applications take benefit of increasing the number of resources:

In this interactive context, performance is a global multi-criteria objective associating precision, fluidity and reactivity.

Adaptive scheduling

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:

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.

Activity Reports