1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<TeXmacs|1.0.7.21>
<style|generic>
<\body>
Id�e de base : utiliser stdin/stdout pour la communication et avoir un
machin qui communique � c�t�. En mode client : faire un socket.connect puis
faire un dup2 pour que stdio redirige vers le socket. Serveur : appli �
part.
<strong|Protocole Manager-Application.>
<em|Messages application.>
<\itemize>
<item>Emit(task, IO?)
<item>Get(chan-id, cont)
<item>Put(chan-id, data)
<item>Request-task(IO?)
<item>Emit-result
</itemize>
<em|Manager application.>
<\itemize>
<item>Give-task(task, iO?)
<item>Give-task-get(data, cont, IO?)
</itemize>
<strong|Protocole Manager-Manager.>
same as manager-application, mostly
<strong|Protocole Manager-Pool.>
<\itemize>
<item>manager serve : connect to pool, send Serve
<item>manager use : connect to pool, send NeedHelp(task name, my addr)
<item>pool relay : send NeedHelp(task name, my addr)
</itemize>
<strong|Interface.>
On lance un pool-server sur une machine :
<verbatim|tulipier$ ./manager --pool>
Puis on lance plein de travaillers :
<\verbatim>
cargo$ ./manager --serve tulipier
tilleul$ ./manager --serve tulipier
thuya$ ./manager --serve tulipier
</verbatim>
On �crit un code <verbatim|mon_app.ml> qui utilise la biblioth�que
<verbatim|Kahn_sock.Sock_dist>. On compile, et on s'assure que l'on peut
appeller le binaire avec <verbatim|./mon_app> sur toutes les machines qui
sont en mode <verbatim|--serve>. Ensuite, on fait :
<verbatim|tulipier$ ./manager --run ./mon_app --use tulipier>
\;
</body>
|