Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix make dist.
[simgrid.git] / doc / ref_guide / doxygen / module-gras.doc
1 /** \addtogroup GRAS_API
2
3     \section GRAS_funct GRAS offers the following functionnalities
4      - <b>\ref GRAS_comm</b>: Exchanging messages between peers
5        - \ref GRAS_dd : any data which may transit on the network must be
6          described beforehand so that GRAS can handle the platform
7          heterogeneity and convert them if needed.
8        - \ref GRAS_sock : this is how to open a communication channel to
9          other processes, and retrive information about them.
10        - \ref GRAS_msg : communications are message oriented. You have to
11          describe all possible messages and their payload beforehand, and
12          can then attach callbacks to the arrival of a given kind of message.
13        - \ref GRAS_timer : this is how to program repetitive and delayed
14          tasks, not unlike cron(8) and at(1). This cannot be used to timeout
15          a function (like setitimer(2) or signal(2) games could do).
16      - <b>\ref GRAS_run</b>: Running both on top of the simulator and on
17        top of real platforms, and portability support.
18        - \ref GRAS_virtu : You naturally don't want to call the
19           gettimeofday(2) function in simulation mode since it would give
20           you the time on the host running the simulation, not the time in
21           the simulated world (you are belonging to).\n
22           This a system call virtualization layer, which also acts as a
23           portability layer.
24        - \ref GRAS_globals : The use of globals is forbidden since the
25          "processes" are threads in simulation mode. \n
26          This is how to let GRAS handle your globals properly.
27        - \ref GRAS_emul : Support to emulate code excution (ie, reporting
28          execution time into the simulator and having code sections specific
29          to simulation or to real mode).
30
31
32     @{ */
33        /** @defgroup GRAS_comm    Communication facilities */
34        /** @defgroup GRAS_run     Virtualization */
35
36 /** @} */
37 #####################################################################
38 /** @addtogroup GRAS_comm
39
40    Here are the communication facilities. GRAS allows you to exchange
41    <i>messages</i> on <i>sockets</i> (which can be seen as pipes between
42    processes). On reception, messages start <i>callbacks</i> (that's the
43    default communication mode, not the only one). All messages of a given
44    type convey the same kind of data, and you have to describe it
45    beforehand.
46
47    Timers are also seen as a mean of communication (with yourself). It
48    allows you to run a repetitive task ("do this every N second until I tell
49    you to stop"), or to deffer a treatment ("do this in 3 sec").
50
51     @{ */
52        /** @defgroup GRAS_dd      Data description      */
53        /** @defgroup GRAS_sock    Sockets               */
54        /** @defgroup GRAS_msg     Messages              */
55        /** @defgroup GRAS_timer   Timers                */
56
57 /** @} */
58 #####################################################################
59 /** @addtogroup GRAS_run
60
61    Virtualization facilities allow your code to run both on top of the simulator or in real setting.
62
63     @{ */
64
65        /** @defgroup GRAS_globals Globals               */
66        /** @defgroup GRAS_emul    Emulation support */
67        /** @defgroup GRAS_virtu   Syscalls              */
68
69 /** @} */
70
71