Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
herda sirine08:11
oui
Hanane Guemmouma08:11
Vous08:12
- un objet : un agent
Vous08:14
1- lancer un agent
setup()
Vous08:15
-OnShotBehaviour
Vous08:16
- CyclicBehaviour
action () done()
A M08:20
madame si vous pouvez utiliser un fichier word pour ecrire ce que vous envoyer dans le chat
on perd tout
le chat
Communication
1
send / receive
ACL
ENVOI
m.setcontent ( string) <--- l'information à envoyer ( une valeur / une chaine de caractères)
send(m);
this.myAgent.send();
exemple;
import jade.lang.acl.*;
c= 10;
receive
blockingReceive
ACLMessage m1;
m1=myAgent.blockingReceive();
if(m1!=null){System.out.println("Je suis A1 :" +
m1.getContent());}
m1= receive();
2
cas d'un tableau
m.addReceiver(new AID("A2",AID.ISLOCALNAME));
m.addReceiver(new AID("A3",AID.ISLOCALNAME));
try {m.setContentObject(T);}
catch (IOException e) {e.printStackTrace();}
myAgent.send(m);
getArguments()
Object [] T = getArguments();
System.out.println(" Je suis "+ this.getLocalName()+ " La somme que j'ai trouvée est : "+c);
- Main : programme principal qui lance les agents (les noms d'agents, l'environnement
jade (GUI), les arguments.
3
- méthode 2: programmer la configuration (méthode 1)
MainContainer un seul
4
DF: Directory Facilator: enregistrer les agents par service.
Jade
5
6
-la programmation à mémoire partagée ( threads)
MPI
OpenMPI, MPICH, ..
7
PMD
Programme.c
- Linux OpenMPI
mpirun -np 4 ./programme -- lancer l'application sur une architecture parallèle ayant 4
processus.
1- Initialiser MPI
8
MPI_Init(&argc, &rgv);
COMMUNICATION
- communication collective.
MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int tag,
MPI_Comm comm, MPI_Status *status);
Solution
#include "mpi.h"
int my_rank; /* Rang du processus */
int p; /* Nombre de processus */
int val;
int tag= 666;
, MPI_Status status;
...
main (int argc, char *argv []) {
...
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
MPI_Comm_size(MPI_COMM_WORLD, &p);
9
}
if (my_rank==1) {
MPI_Finalize () ;
...
}
EXO 2:
Solution
#include "mpi.h"
int my_rank; /* Rang du processus */
int p; /* Nombre de processus */
int [100] val;
int tag= 666;
, MPI_Status status;
...
main (int argc, char *argv []) {
...
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
MPI_Comm_size(MPI_COMM_WORLD, &p);
if (my_rank==0) {
/* Envoyer le tableau
if (my_rank==1) {
MPI_Finalize () ;
10
}
if ( my_rank == 0)
for (source = 1; source < p; source++) {
MPI_Recv(message, 100, MPI_CHAR, source, tag,
MPI_COMM_WORLD, &status);
printf("%s\n", message);
}
Exercice
Ecrire un programme MPI ou les processus du rang impair communiquent entre eux en
envoyant un tableau de 20 caractères qui se strouve intialement chez le processus P1
(rang =1). utiliser la communication point à point.
11
12