ErrLog config dico This module provide the quite usual dynamic array facility. Dynamic array dynar This document introduce the GRAS library (Grid Reality And Simulation, or according to my english dictionary, Generally Recognized As Safe ;). Overview The purpose of the GRAS is to allow the developpement of distributed programs which will work with as few as possible modification both on the SimGrid simulator (SG), and in the Real Life (RL). Here are the problems when you want to do so: Communication in SG is done by passing tasks, while in RL, you have to deal with sockets (or any wrapper to it). In RL, each process should provide a main() function, and it's obviously not the case in SG. Application class target If you want to run your code both in RL and in SG, you won't be able to use the full set of features offered by any of those two worlds. GRAS tries to provide a suffisent set of features to develop your application, and implement them in both worlds. GRAS uses the paradigm of event-driven programming, which is an extension to the message-passing one. Any process of a typical event-driven application declares callback to incoming events, which can be messages from other processes, timers or others. All messages have an header, specifying its type, and attached data, represented as one or several C structures. In order to send the data over the network in RL, a type-description mecanism is provided, and the RL version of GRAS implements CDR functionnalities. That is to say that the data are sent in the native format of the sender host, and converted on the destination host only if needed. In order to not reimplement the wheel, GRAS use existing code, and adapt them to make them work together. The SG version naturally use the SimGrid toolkit, while the RL version is based over the communication library used in NWS (note that this library was somehow modified, since the previous version use XDR, ie both the sender and the receiver convert the data from/to a so called network format). That's why some basic knowledge about how NWS work is supposed in this document. But don't worry, you only have to know the basics about NWS, the internals needed to understand the document will be presented when needed. Overview of the GRAS library Overview gras nws_comm @c: @f: @c: @f: @a1: @c: @f: @a1: @a2: @c: @f: @a1: @a2: @a3: @c: @f: @a1: @a2: @a3: @a4: @c: @f: @a1: @a2: @a3: @a4: @a5: @c: @f: @c: @f: @a1: @c: @f: @a1: @a2: @c: @f: @a1: @a2: @a3: @c: @f: @a1: @a2: @a3: @a4: @c: @f: @a1: @a2: @a3: @a4: @a5: @c: @f: @c: @f: @a1: @c: @f: @a1: @a2: @c: @f: @a1: @a2: @a3: @c: @f: @a1: @a2: @a3: @a4: @c: @f: @a1: @a2: @a3: @a4: @a5: @c: @f: @c: @f: @a1: @c: @f: @a1: @a2: @c: @f: @a1: @a2: @a3: @c: @f: @a1: @a2: @a3: @a4: @c: @f: @a1: @a2: @a3: @a4: @a5: @c: @p: @f: @c: @p: @f: @a1: @c: @p: @f: @a1: @a2: @c: @p: @f: @a1: @a2: @a3: @c: @p: @f: @a1: @a2: @a3: @a4: @c: @p: @f: @a1: @a2: @a3: @a4: @a5: @c: @p: @f: @a1: @a2: @a3: @a4: @a5: @a6: @f: @f: @a1: @f: @a1: @a2: @f: @a1: @a2: @a3: @f: @a1: @a2: @a3: @a4: @f: @a1: @a2: @a3: @a4: @a5: @addr: @Param2: @sock: @timeOut: @Returns: @pid: @parentToChild: @childToParent: @Returns: @sock: @Returns: @Param1: @Param2: @ear: @earPort: @Returns: @addr: @Returns: @addr: @Returns: @addr: @Returns: @addr: @Returns: @machineOrAddress: @address: @machineOrAddress: @addressList: @atMost: @Returns: @timeOut: @sd: @ldap: @Returns: @sd: @Returns: @sd: @Returns: @machineOrAddress: @p: @f: @a1: @a2: @a3: @a4: @a5: @a6: @Returns: @notifyFn: @addr: @Param2: @sock: @Returns: @Param1: @Param2: @ear: @earPort: @Returns: @sock: @child: @Returns: @sd: @Returns: @sd: @Returns: @sd: @Returns: @sig: @Param1: @sd: @Returns: @sd: @Returns: @sd: @msgType: @vdata: @sock: @Returns: @dd1: @c1: @dd2: @c2: @Returns: @description: @description: @Returns: @sd: @data: @description: @description_length: @repetition: @Returns: @sd: @data: @description: @description_length: @repetition: @Returns: @description: @ft: @Returns: @no_error: @malloc_error: @mismatch_error: @sanity_error: @system_error: @network_error: @timeout_error: @thread_error: @unknown_error: @Returns: @sd: @size: @id: @Returns: @msg: @timeOut: @msgId: @dataSize: @seqCount: @Returns: @msgId: @free_data_on_free: @seqCount: @Varargs: @Returns: @message: @name: @sequence_count: @Varargs: @Returns: @sd: @message: @sequence_count: @Varargs: @Returns: @sd: @timeout: @message: @sequence_count: @Varargs: @Returns: @Returns: @host: @Param2: @sock: @Returns: @Param1: @Param2: @sock: @Returns: @sd: @Returns: @sd: @Returns: @sd: @data: @description: @Returns: @message: @TTL: @cb: @sd: @data: @description: @Returns: @Returns: @type: @ud: @dynar: @cursor: @Returns: @dynar: @cursor: @whereto: @Returns: @cat: @parent: @cat: @thresholdPriority: