Vous êtes sur la page 1sur 52

Un flot de conception

Pour Rseaux de Capteurs sans fil:


Modles d'excution et Gnration de code

Bernard Pottier
Universit de Brest (UBO), France
*LabSTICC, UMR 3192
Dept Informatique, Facult des Sciences

Bejaia. B.Pottier et al.

Plan
En appui sur la confrence de Lundi 25, on
montre l'ossature des outils NetGen
1.Forme textuelle du modle topologique
2.Cration interactive de rseaux
3.Principe de la gnration de processus communicants
4.Principe de la gnration de code CUDA

Dmonstrations sur machine / discussions


Bejaia. B.Pottier et al.

Framework en dveloppement

Outil de dveloppement principal : Smalltalk

VisualWorks (Cincom) : prototypage


rapide,constructions de modles. Licence non
commerciale

Pour l'expression et la simulation systmes

Occam, compilateur de U. de Kent, libre

CUDA, compilateur et kit nvcc de Nvidia, licence

Graphviz, dot, etc..

Matriel principal : msp430, mspgcc4, insight


Bejaia. B.Pottier et al.

A. Proposition de flot de conception


(rappel)
L'atelier NetGen propose un flot
descendant inspir de la conception
matrielle:
2
1

Etape 1: conception, simulation, optimisation.


Etape 2 : production du code pour les capteurs,
tests et dploiement
Bouclages sur chacune des tapes et sur le flot
complet.
Bejaia. B.Pottier et al.

Spcification gomtrique (1)

Tableau de bord NetGen :

Gnrations de distributions alatoires

Rseaux rguliers

Explications sur la forme textuelle du modle :

Bejaia. B.Pottier et al.

Pi { Pj Pk Pn } Programme

Spcification gomtrique (2)

Modle

Bejaia. B.Pottier et al.

Spcification textuelle / fichiers

Editeur de spcification

Syntaxe spcification : titre messages (Pi { Pj Pk Pn } Programme) ..

Load et save : possibilit d'crire vos propres gnrateurs.


(menu)

(dition)
(Clic droit)

Bejaia. B.Pottier et al.

Spcifications rgulires

Grilles de connectivit variable

Bejaia. B.Pottier et al.

Prsentation graphe logique

Utilisation du logiciel graphviz

R-criture du modle en syntaxe dot

Si graphviz : production de prsentations graphiques logiques

Bejaia. B.Pottier et al.

Saisie sur carte (1)

But : positionnement de capteurs sur un plan

Accs fentre de saisie graphique


Menu option : map

Fenetre graphique

Bejaia. B.Pottier et al.

Saisie sur carte (2)


Chargement
d'une image
(.png

Portail IGN
(France),
Google maps,
etc... plans
batiments

Bejaia. B.Pottier et al.

Saisie sur carte (3)


Positions des
capteurs

Selections de
points
Echelle en vue
Dessin du rseau
immdiat
Porte des
capteurs rglable

Bejaia. B.Pottier et al.

Saisie sur carte (4)


Production du
modle

Transfert vers les


outils du modle
Production d'un
modle annot sur
la carte

Bejaia. B.Pottier et al.

Saisie sur carte (5)


Analyse du modle

Application des outils sur le


modle produit

Bejaia. B.Pottier et al.

Autre technique : saisie par GPS

'Data logger' MerSea

Micro controleur + GPS,


boutons de saisie

Mesures de porte sans fil

Promenade sur site

Analyse en laboratoire
GPS

Bejaia. B.Pottier et al.

C2420 MSP

Saisie par GPS : r-critures

Analyse des donnes et


reformulation

KML / Google map

Qgis (apt-get install qgis)

Bejaia. B.Pottier et al.

B. Proposition de flot de conception


(rappel)
L'atelier NetGen propose un flot
descendant inspir de la conception
matrielle:

Etape 1: conception, simulation, optimisation.


Etape 2 : production du code pour les capteurs,
tests et dploiement
Bouclages sur chacune des tapes et sur le flot
complet.
Bejaia. B.Pottier et al.

Flot de conception 1: simulation

Etape 1, simulation :
1.Capture de topologie : sur ordinateur
(cartes, dispersions) ou dans la rue (data
logger)
2.Synthse rseau : exprime sur un modle,
avec production de caractristiques.
3.R-critures graphiques ou textuelles
4.Couplage spcification comportements
5.Production code de simulation et simulation
Bejaia. B.Pottier et al.

Modle synchrone : ref. N. Lynch


P2
Comportement abstrait

P1

Init

M : message send
N : message receive
C : state change and next
message production

M1
N1

P3
Init
Init
M1
M1
N1
N1
C1

Mthodes d'excution

C1
M2

Canaux bloquant Occam

Barrires SIMD sur GPU

Comm. TDMA par phases


Bejaia. B.Pottier et al.

M2

C1
M2

Processus communicants :
CSP/Occam (Ref. Hoare)
CHAN OF BYTE c :

BYTE val :
PAR

A bloqu

c ! 'x' ecriture A
c ? val lecture B

Bejaia. B.Pottier et al.

Rendez vous A B
Communication
libration

Processus communicants :
Modle synchrone

Si P1 et P2 sont
connects :

P1 ecrit P2

P1 reoit de P2

P2 crit P1

P2 reoit de P1

Echantillon de code pour les phases


Mi Ni du modele synchrone

Obligation de
procder en parallle
pour viter un
deadlock !

PAR
PAR i=0 FOR SIZE in
in[i] ? CASE
table ; inMessages[i]
SEQ
tags[i]:=TRUE
externalChange :=TRUE
null ; nullByte
tags[i]:=FALSE

Bejaia. B.Pottier et al.

PAR j=0 FOR SIZE out


out[j] ! table; outMessages[j]

Processus communicants :
Simulation

100 % de la topologie gnre

Construction parallle pour le rseau

Prsence d'un traceur interne

100 % du comportement crire

Largement rutilisable

Code de haut niveau, fortement concurrent (PAR)

Compilation multi_threade adapte aux


processeurs multi coeurs

Scheduler embarqu dans l'excutable !


Bejaia. B.Pottier et al.

Processus communicants :
Trace
.

10
9
18
0
1
2
3
4
5
6
7
8

1ere colonne : Pi
2nde colonne : diametre
3ieme colonne : leader

Bejaia. B.Pottier et al.

1
1
5
6
6
6
6
6
6
6
6
6

10
10
18
11
11
11
11
11
11
11
11
11

11
12
13
14
15
16
17

6
5
5
5
5
5
5

11
18
18
18
18
18
18

Simulation sur GPU

1 thread par processus

1 kernel par comportement diffrent


Paralllisme implicite, tout le monde fait la
mme chose

Les canaux sont implants dans des


tableaux, les transferts sont 'synchrones'

Contenant les valeurs mises


Qui sont lus par les voisins
Bejaia. B.Pottier et al.

Simulation sur GPU


typedef struct s_mapped
{
int node;
int canal;
}mapped;
typedef struct s_canaux
{
int nbOut;
int nbIn;
int nbDyn;
mapped write[MAX_FANOUT];
mapped read[MAX_FANOUT];
mapped
writeDyn[DYNAMIC_CHAN];
mapped readDyn[DYNAMIC_CHAN];
}canaux;

canaux channels_h[] =
{ // start array
{2,2,5,{{0,0},{0,1}},{{1,0},{2,0}},{{0,0},{0,1},{0,2},{0,3},{0,4}},{{-1,-1},
{-1,-1},{-1,-1},{-1,-1},{-1,-1}}},
{3,3,5,{{1,0},{1,1},{1,2}},{{0,0},{2,1},{3,0}},{{1,0},{1,1},{1,2},{1,3},
{1,4}},{{-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1}}},
{4,4,5,{{2,0},{2,1},{2,2},{2,3}},{{0,1},{1,1},{3,1},{4,0}},{{2,0},{2,1},
{2,2},{2,3},{2,4}},{{-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1}}},

Bejaia. B.Pottier et al.

Simulation sur GPU


Production d'une ossature dcrivant les
communications

Compilation nvcc

Excutable ou librairie dynamique

Intgration au controleur Smalltalk pour la


visualisation

Bejaia. B.Pottier et al.

Merci ..

Bejaia. B.Pottier et al.

Flot de conception 2: synthse

Etape 2, synthse 'travaux en cours):


1.Code de communication sans fil
2.Appel des interactions avec les capteurs
3.Planification des oprations
(ordonnancement)

Bejaia. B.Pottier et al.

Partie 3
Illustration du flot

Bejaia. B.Pottier et al.

Capture de la topologie (1)

Sur ordinateur :

Cartes, placements, information gographique

Bejaia. B.Pottier et al.

Capture de la topologie (2)

Dans la rue :

Mersea data logger (GPS, carte MSP430)

Visite ligne de bus, saisie des points d'intrt (PoI)

Bejaia. B.Pottier et al.

Synthse du rseau

Calcul connectivit :

Aires de couvertures
(relles, ou attendues)
Synthse d'un graphe sur un
modle interne

Bejaia. B.Pottier et al.

Statistiques et interactions

Statistiques :

Noeuds, connexions,
rseaux
Max fanout,

Rcriture du graphe :

KML/Google earth

QGIS (Quantum GIS)

Graphviz, ...

Bejaia. B.Pottier et al.

Excution par changes TDMA

TDMA : rendez-vous priodiques entrelas


avec le sommeil et l'observation

Allocation de slots pour diffusion et rception

Rfrence temporelle par protocole asynchrone

1 time slot = 1 channel + n slots pour mobiles

Bejaia. B.Pottier et al.

Partie 4
Simulation Parallle

Bejaia. B.Pottier et al.

Simulation par systme de


processus

Synthse de l'organisation en OCCAM :


Construction parallle de processus PAR
1 lien de communication est 1 canal Occam
Multiplexeur pour la collecte de trace
Comportement :

Le fichier topologique inclut un fichier de


comportement rutilisable

Bejaia. B.Pottier et al.

Simulation/MIMD

Compilation et excution:
KROC compiler, i386, multi threaded
Collecte de la trace dans un fichier
Resultats :

Diametre, leader, arbres de recouvrement,


calculs de routages et routages,
contentions..
Simulation jusque 1000 noeuds
Bejaia. B.Pottier et al.

Simulation sur GPU

Processus dcrits par des thread CUDA:


Les canaux sont interprets par read/write
sur des buffers en mmoire partage.
Un controleur peut accder l'tat des
processus et aux buffers
Intrelacement controle et presentation
Comportement :

Code CUDA exprimant un programme


synchrone.
Bejaia. B.Pottier et al.

GPU execution diagram

Bejaia. B.Pottier et al.

Partie 5
Mobiles

Bejaia. B.Pottier et al.

Mobiles : classification d'usages

1 mobile : vehicule, robot, drone, personne

Plusieurs mobiles : transports, animaux, touristes

Flottes de Mobiles : vehicules, circulation...

Trajectoire calcule: balayage d'un espace

Trajectoire spcifie : bus sur sa ligne

Trajectoire dynamique : decisions prises au cours


du trajet
Bejaia. B.Pottier et al.

Visite calcule (thanks N.Melot)

Bejaia. B.Pottier et al.

Visite spcifie
Range 250m, 4 networks

Accrochages en vert
Dcrochages en rouge

Bejaia. B.Pottier et al.

Integration des mobiles

Canaux libres additionnels chaque noeud

TDMA slots

buffers en CUDA

(mobile channels en Occam-Pi )

Ces canaux sont lus. Ils permettent aux mobiles


de rejoindre les rseaux et initier des calculs
Les mobiles peuvent executer des collectes de
donnes, controler, transporter des infos.

Bejaia. B.Pottier et al.

Exemple : rseau cotier avec 2


portes diffrentes et 1 mobile

Bejaia. B.Pottier et al.

http://wsn.univ-brest.fr/VoyageEnRade

Partie 6
Quelques rsultats

Bejaia. B.Pottier et al.

1500 sensor, discovery by mobile

One random
system of 1500
nodes
Wireless range
varies from 50
120 units
More connectivity
implies less
networks
Bejaia. B.Pottier et al.

6 dynamic networks 4 GPUs

500 to 3000 nodes


diameter, leader,
network
modification, again
diameter, leader
GFX480, 9800GT,
9600GT, MacMini
9400M

Bejaia. B.Pottier et al.

Du cot des capteurs :

Couplage capteur
acclrometre
Mesures (ici une
promenade)

Bejaia. B.Pottier et al.

Partie 7
Dmonstrations

Bejaia. B.Pottier et al.

Outil NetGen

Rseaux alatoires, rseaux rguliers

Saisie sur carte

Saisie d'un mobile

Nature des fichiers gnrs.

Bejaia. B.Pottier et al.

Merci ..

Bejaia. B.Pottier et al.

Vous aimerez peut-être aussi