README.txt
1This is the distributed (per core) mem_serv.
2
3It should be started on one core, and takes arguments
4telling it how to further proceed. The possible
5arguments are:
6
7-m: be a master
8-w: be a worker
9-a: spawn on all available cores
10-c <list>: spawn on the given list of cores
11-x <list>: don't spawn on the given list of cores
12-n <num>: spawn on a maximum of 'num' cores
13-r <num>: each core should be responsible for <num> bytes of memory
14
15Typically the -w argument is only passed by the master to
16workers on other cores when spawning them.
17
18The included menu.lst file shows an example of how to start
19the distributed mem_serv.
20
21Note that this also requires a modified spawnd that knows
22about mem_serv_dist.
23
24There are also some simple benchmark/test programs included. They all
25perform variations on allocating a bunch of memory. When run with the
26distributed mem_serv it will use the local mem_serv, when
27run without it will use the global mem_serv.
28
29Note that there are several alternative implementations of mem_serv_dist.
30- no stealing: this version does not steal ram caps from the other mem_serv's
31 when a local server runs out of memory. This means that each core only has
32 access to a limited amount of memory.
33- stealing: this version steals ram caps from other mem_serv's when a local
34 server runs out of memory. Each core therefore has potential access to all
35 the system memory.
36 There are two versions of the stealing mem_serv_dist:
37 + hybrid: uses THC stubs for the stealing. However, it uses traditional
38 stack-ripped IDC code for starting and running the mem_serv and handling
39 its events.
40 + thc: uses THC stubs for stealing. It also uses THC and THC language
41 extensions for starting and running the mem_serv itself.
42
43The code is structured as follows:
44- mem_serv.c:
45 contains all the common mem_serv functionlity, shared by the stealing
46 and non_stealing versions
47- steal.c:
48 contains code specific to the stealing versions. Since the stealing
49 versions all use THC stubs, this also contains the thcmain() function.
50- no_steal.c:
51 contains some dummy stubs for the non stealing version. It also
52 conatins the main() function for the non stealing version.
53- hybrid_support.c:
54 contains wrapper functions for doing the non-THC IDC and the dispatch loop.
55- thc_support.c:
56 contains wrapper functions for doing THC-based communication and the server
57 loop.
58