Real-Time Monitoring of Ocaml programs

Dimension: px
Commencer à balayer dès la page:

Download "Real-Time Monitoring of Ocaml programs"

Transcription

1 Real-Time Monitoring of Ocaml programs S. Conchon 1,2,3 J.-C. Filliâtre 2,1,3 F. Le Fessant 3 J. Robert 1 G. Von Tokarski 1 1: Université Paris Sud F Orsay 2: CNRS / LRI UMR 8623 F Orsay 3: INRIA Saclay Île-de-France F Orsay Abstract. In order to tune or debug a program, it is useful to be able to observe its execution. For instance, one may observe how the memory is used, how much time is spent in some parts of the code, or even observe some values computed by the program. Several tools allow such observations (system monitors, specific or generic profilers or debuggers, users logs, etc.). However, these tools only provide limited observations which are typically obtained at the end of program execution. This paper presents Ocamlviz, a library to instrument OCaml code and tools for real-time observation of its execution. Keywords: Monitoring, Real Time, Ocaml Résumé long Il existe de nombreux moyens pour mettre au point un programme écrit en Objective Caml [3]. S il s agit de sa correction, la solution la plus simple consiste souvent à insérer quelques affichages sur la sortie standard, par exemple à l aide de la fonction printf. Si cette trace ne suffit pas, on peut se tourner vers le debugger d OCaml [4], qui permet notamment d inspecter toute valeur calculée et même de revenir en arrière dans l exécution du programme. Il est également possible d utiliser un debugger plus générique tel que gdb [1]. S il s agit d analyser les performances du programme, il existe des solutions simples et im- JFLA 2010

2 160 JFLA 2010 médiates, comme les outils Unix time et top pour mesurer respectivement le temps d exécution et la quantité de mémoire utilisée. Pour une analyse plus fine, on peut utiliser des profilers tels que celui fourni avec OCaml, ocamlprof [5], ou encore des outils génériques comme gprof [2] et OProfile [6]. Même s ils sont complémentaires, ces divers outils possèdent un grand nombre de limitations. La première concerne les possibilités d observation. Les profilers génériques gprof et OProfile sont ainsi limités à l observation du nombre d appels de chaque fonction et du temps passé dans celles-ci. Inversement, ocamlprof a une granularité plus fine, mais ne donne que des décomptes de points de passage sans indication de temps de calcul. Les debuggers non plus ne permettent pas de mesurer le temps de calcul. D autre part, aucun de ces outils ne permet de mesurer la quantité de mémoire occupée par une valeur OCaml. Concernant l aspect temps-réel, seul OProfile permet d observer un programme en cours d exécution. Des outils comme ocamlprof et gprof n offrent qu une analyse post-mortem. Enfin, aucun effort particulier n est fait dans ces outils pour présenter graphiquement les résultats des observations. Leur architecture ne permet généralement pas de leur ajouter facilement une telle fonctionnalité. Le projet Ocamlviz propose une alternative à ces différents outils, sous la forme d une bibliothèque pour instrumenter du code OCaml et des outils pour visualiser ensuite son exécution, en temps-réel et de manière distante. Les fonctions proposées dans cette bibliothèque permettent au programmeur d indiquer précisément les observations qu il souhaite faire. En particulier, la granularité de ces observations n est pas limitée aux fonctions. L utilisateur peut ainsi observer des points de passage et des temps d exécution pour des portions de code arbitraires. D autre part, il est possible de mesurer la quantité de mémoire utilisée par une ou plusieurs valeurs et même de déterminer si elles sont encore vivantes pour le ramasse-miettes. Une particularité d Ocamlviz est de dissocier le calcul des valeurs observées et leur exploitation. En effet, le programme instrumenté à l aide de la bibliothèque se comporte, pendant son exécution, comme un serveur, auquel des clients peuvent se connecter pour récupérer les résultats de l observation. Ocamlviz fournit un client particulier, sous la

3 Ocamlviz 161 forme d une interface graphique GTK-2. Le serveur et les clients communiquent à l aide d un protocole réseau indépendant d OCaml, ce qui permet d observer l exécution depuis des machines distantes et d écrire des clients dans d autres langages. Principe. Ocamlviz est à la fois une bibliothèque pour instrumenter du code OCaml à observer et des outils pour transmettre et visualiser les résultats. En premier lieu, l utilisateur instrumente son code en indiquant les observations qu il souhaite réaliser. Il utilise pour cela les briques de base fournies par la bibliothèque Ocamlviz. Il lie ensuite son programme avec cette bibliothèque. Le code ainsi obtenu peut être exécuté normalement mais il peut également être observé. En effet, en parallèle de l exécution normale, le programme se comporte maintenant comme un serveur qui attend des connections et transmet le résultat des observations à ses clients. En particulier, Ocamlviz fournit une interface graphique évoluée permettant une visualisation agréable et synthétique des résultats. Le caractère client/serveur de l architecture offre de nombreux avantages. Premièrement, il permet de décider d observer le programme à n importe quel moment de son exécution. En particulier, un client peut se connecter longtemps après le début de l exécution et se déconnecter à tout instant. Deuxièmement, un nombre arbitraire de clients peuvent se connecter à un même programme en cours d exécution. Troisièmement, les clients peuvent se connecter depuis des machines distantes, qu elles aient ou non la même architecture que celle sur laquelle s exécute le code instrumenté. Enfin, cette architecture dissocie l instrumentation de l observation des résultats. En particulier, le protocole de communication est indépendant du langage OCaml et permet par exemple l utilisation de clients écrits dans d autres langages. Observations. La bibliothèque Ocamlviz permet plusieurs types d observations, que l on présente rapidement dans cette section. Mesure du temps. Ocamlviz permet de mesurer le temps passé entre certains points du programme, cumulativement. Pour cela, l utilisateur crée un ou plusieurs chronomètres, puis les déclenche et les stoppe en divers endroits du programme, non nécessairement au sein de

4 162 JFLA 2010 la même fonction. Pour chaque chronomètre, le temps cumulé de son activation est alors rapporté. L interface graphique montre cette valeur, le pourcentage qu elle représente par rapport au temps total d exécution ainsi que le dernier instant où elle a été modifiée. Points de passage. Ocamlviz permet de mesurer le nombre de fois que l exécution passe par un ensemble de points de programme. Comme pour la mesure du temps, l utilisateur commence par créer un ou plusieurs marqueurs, qu il place aux endroits adéquats. Pour chaque marqueur, Ocamlviz décompte alors le nombre de fois que l exécution a emprunté un point de programme désigné par ce marqueur. Là encore, la notion de marqueur n est pas liée à celle de fonction, un même marqueur pouvant être placé n importe où dans le code, y compris plusieurs fois. L interface graphique montre la valeur de chaque marqueur, ainsi que sa date de dernière modification. Un marqueur peut être utilisé de manière immédiate pour compter le nombre d appels à une fonction, à la manière de gprof, ou encore pour compter le nombre de fois qu une branche else est empruntée, à la manière d ocamlprof, mais aussi pour mesurer cumulativement le nombre de fois que l on emprunte tel ou tel partie du code, ce que gprof et ocamlprof ne permettent pas de faire. Observation de valeurs. Ocamlviz permet d observer des valeurs arbitraires calculées par le programme. Pour les types de base (entiers, flottants, chaînes de caractères), il suffit d indiquer une fonction calculant la valeur à observer et la fréquence à laquelle cette fonction doit être évaluée. La valeur est alors transmise à tous les clients, à cette fréquence. Lorsque la valeur est numérique, l interface graphique permet même de tracer un graphe de l évolution de la valeur dans le temps. La bibliothèque Ocamlviz fournit des facilités pour observer directement le contenu d une référence ou celui d une table de hachage provenant de la bibliothèque standard d OCaml. Pour observer des valeurs de types plus complexes, une solution simple consiste à les transformer en chaînes de caractères. Néanmoins, Ocamlviz fournit également une solution élégante pour observer des structures s apparentant à des arbres ou à des graphes. Pour cela, l utilisateur commence par traduire la valeur à observer dans le type suivant type t = { node : string; mutable children : t list }

5 Ocamlviz 163 puis celle-ci est transmise via le protocole client/server jusqu à l interface graphique où elle est affichée sous forme d arbre ou de graphe, selon le cas. Le partage ou les cycles éventuels sont préservés, à condition qu ils l aient été par l utilisateur dans sa traduction vers le type t ci-dessus, ce que permet le caractère mutable du champ children. Marquage de valeurs. Ocamlviz permet d analyser l utilisation de la mémoire par le programme. Pour cela, l utilisateur peut marquer un ensemble de valeurs et connaître à intervalle régulier le nombre d entre elles qui sont encore vivantes pour le ramasse-miettes et, éventuellement, la taille qu elles occupent sur le tas. Là encore, l utilisateur peut créer plusieurs marqueurs. Un même marqueur peut être utilisé pour marquer une ou plusieurs valeurs, possiblement de types différents. Si plusieurs valeurs sont désignées par le même marqueur, le partage est pris en compte dans le calcul de l occupation mémoire. Journal. Une dernière technique d observation fournie par Ocamlviz consiste en une commande similaire à printf qui permet d envoyer des messages arbitraires par le protocole client/serveur. Ceux-ci apparaissent alors côté client sous la forme d un journal, où chaque message est accompagné de son temps d exécution. Lorsque l utilisateur souhaite faire certaines de ces observations de manière systématique sur l ensemble du programme, comme observer le contenu de toutes les références globales ou compter le temps passé dans chaque fonction, il peut utiliser pour cela un petit module camlp4 fourni avec Ocamlviz. Réalisation. L architecture d Ocamlviz repose sur trois éléments principaux : un protocole de communication, une bibliothèque serveur et une bibliothèque client. Le protocole client/serveur utilisé par Ocamlviz est indépendant du langage OCaml et de l architecture sur laquelle tourne le programme en cours d observation ou les différents clients. Cela permet entre autres d observer un programme depuis une autre machine ou encore d écrire un client dans un autre langage. La représentation des données reste compacte, pour une utilisation optimale de la bande passante, les données transmises pouvant être très volumineuses.

6 164 JFLA 2010 La bibliothèque serveur, liée avec le programme observé, calcule à intervalle régulier l ensemble des données d observation et les transmet aux différents clients. Les valeurs marquées sont stockées dans des tables de pointeurs faibles, afin de ne pas s opposer à leur récupération par le ramasse-miettes. Ocamlviz fournit deux réalisations différentes de cette bibliothèque serveur : l une utilisation des alarmes et l autre des processus légers (threads). Il est ainsi possible de s adapter aux contraintes du programme observé. Enfin, Ocamlviz fournit également une bibliothèque facilitant l écriture de clients. Cette bibliothèque permet notamment de conserver localement au client une partie des données envoyées par le serveur, dans une fenêtre de temps paramétrable. Il est alors relativement facile de fournir dans le client un mécanisme de pause ou même de retour en arrière dans le temps. L interface graphique fournie avec Ocamlviz utilise cette bibliothèque et fournit notamment ces deux fonctionnalités. Crédits. Ocamlviz est un logiciel libre, disponible à l adresse http: //ocamlviz.forge.ocamlcore.org/. Son développement a été financé par la société Jane Street Capital et réalisé par deux étudiants de l Université Paris Sud, Julien Robert et Guillaume Von Tokarski, au sein de l INRIA Saclay Île-de-France.

7 Ocamlviz Introduction There exist several ways to tune Objective Caml [3] programs. Concerning correctness, the simplest solution usually consists in inserting debugging messages, for instance using the printf function. When this trace is not enough, one can turn to the OCaml debugger [4]. It allows value inspection and even to rollback in program execution. It is also possible to use a generic debugger such as gdb [1]. Regarding performances, there exist simple and immediate solutions, such as Unix time and top commands, to measure time and space, respectively. For finer analyses, on can use either the OCaml specific tool ocamlprof [5] or generic purpose profilers such as gprof [2] or OProfile [6]. Even if useful when used in collaboration, these tools have severe limitations. The first one is related to observation capabilities. Generic profilers gprof and OProfile are limited to the number of calls and time spent for each function. Conversely, ocamlprof only reports on program point counts without any time measure. Debuggers do not measure any time either. Beside, none of these tools allows to measure space used by an OCaml value. Regarding real-time analysis, only OProfile allows to monitor a program under execution. Tools such as ocamlprof and gprof only offer post-mortem analysis. Finally, no effort is made is these tools to provide graphical display of observation results, and their architecture do not allow to easily add such a feature. The Ocamlviz project is an alternative to all these tools. It is both a library to instrument some OCaml code and tools to visualize its execution in real-time, possibly remotely. The library offers the programmer to precisely specify the observations to perform. In particular, the granularity is not limited to functions; program points can be inserted anywhere in the code and time spent between two such points can be measured. Moreover, space used by an OCaml value can monitored. It is even possible to observe whether a value is still alive for the garbagecollector. One of the main features of Ocamlviz is to dissociate the computation of observed values and their display. Indeed, the program instrumented using the library behaves as a server, to which clients can connect to collect observation results. In particular, Ocamlviz provides a

8 166 JFLA 2010 GTK-2 graphical client. The architecture of Ocamlviz can be depicted as follows: program instrumented library Ocamlviz network GUI Ocamlviz Figure 1: Ocamlviz s architecture. Server and clients communicate through a protocol independent of OCaml, which allows remote observation from distant machines and to write clients in other languages. This paper is organized as follows. Section 2 describes the general architecture of Ocamlviz and shows the main features for instrumenting programs. Section 3 gives specific implementation details about the library and the protocol. Finally, we sketch some perspectives in Section Principle Ocamlviz is both a library to instrument OCaml code and tools to communicate and visualize the results. The concept is illustrated Figure 1. First, the user instruments the code to indicate which observations to perform. To do so, the library provides different kinds of observation functions. Then, the code is linked to the library. When executed, the resulted program runs as if it was not instrumented, but can also be observed. Indeed, in parallel to normal execution, the program now behaves as a server ready to connect to new clients and to transmit them observation data. In particular, Ocamlviz provides an enhanced graphical interface which allows a nice and clear display of results (see Figure 2). The client/server architecture offers many advantages. First, it allows observation at any time during program execution. In particular, a client may connect late after the program startup and may disconnect whenever it likes. Second, several clients may connect to a single

9 Ocamlviz 167 Figure 2: Ocamlviz s graphical interface. program, even simultaneously. Third, clients can connect from remote machines, possibly with a different architecture from that of the running program. Finally, Ocamlviz s architecture dissociates the production of data from their observation. In particular, the communication protocol is independent of OCaml and thus allows clients to be written in other languages. The minimal instrumentation simply consists in linking a program to the Ocamlviz library. It has the immediate effect of sending to clients data related to the OCaml garbage-collector (total size of the heap and of its living part). The graphical interface then displays this information as a graph, as shown in Figure 2. Beyond this feature, the Ocamlviz library provides the following features: measuring the time spent between two program points; counting the number of times one or several program points are reached; observing values computed by the program; measuring number and total size of a set of values marked by the user;

10 168 JFLA 2010 displaying printf-like messages, which are also logged. The remaining of this section details both these different kinds of instrumentation and the graphical interface features Instrumentation The Ocamlviz library provides modules to observe computation times, program points, or values computed by the program Time Measure. Ocamlviz defines a notion of stopwatch, which can be started or stopped anywhere in the program. Such program points do not necessarily coincide with function entries or exits, as it is usually the case in profiling tools. Moreover, one can measure the cumulative time spent in several parts of the code. A new stopwatch is created as follows: let chrono = Ocamlviz.Time.create "t" The string "t" is only used for display in the graphical interface. The stopwatch is used as follows: let f x =... Ocamlviz.Time.start chrono; let z =... in Ocamlviz.Time.stop chrono... In this example, we only measure the time spent for computing z but not in the remaining of function f. It is worth noticing that a stopwatch can be started in some function and stopped in another one. Figure 3 shows how the graphical interface displays the value of stopwatch "t". Column Time displays the current value of the stopwatch (namely 40.9 seconds, representing 100% of total execution time) and the next column displays the execution time at which this value was received (namely 40.9 seconds as well, since both values coincide).

11 Ocamlviz Program Points. Figure 3: Stopwatches and program points. Ocamlviz provides a way to mark one or several program points and then to count the number of times execution reaches these marks. A new mark is created as follows: let point = Ocamlviz.Point.create "p" Then program points to be observed are marked as follows:... Ocamlviz.Point.observe point;... A given mark can be used at several places inside the code and the count is global for each mark. For instance, Figure 3 shows that execution reached 803,800,206 times program points marked using point Observing Values. Ocamlviz allows to observe arbitrary values computed by the program. For simple types (integers, floating-points or strings), it suffices to provide a function computing the value to observe. Then this function is called repeatedly, at a frequency specified by the user. The following code let () = Ocamlviz.Value.observe_float_fct "my value" ~period:200 (fun () sin!v) declares an observation function computing the floating-point value sin!v every 200 milliseconds. Figure 4 shows the visualization of this value in the graphical interface.

12 170 JFLA 2010 Figure 4: value. Observing a scalar Figure 5: Observing a structured value. For more complex types, a simple solution is to turn values to observe into strings. However, Ocamlviz provides a more elegant way to observe values such as trees or graphs. To do so, the user first turns his data structure into the following type: type t = { node : string; mutable children : t list } Generally speaking, it is a datatype for graphs where nodes are labeled with strings. The mutable nature of field children allows to build cyclic values. If the user data contains sharing, it will be preserved by the communication protocol and displayed in the graphical interface. Figure 5 shows the visualization of a structured data where the node named "shared" is shared Marking Values. Ocamlviz provides a way to precisely analyze how the memory is used. Indeed, one can mark values and then to monitor, at any time, the number of such values still alive and the amount of space they use. As for program points, one first create a new marker, called a tag in this context: let t = Ocamlviz.Tag.create ~size:true ~period:300 "foo"

13 Ocamlviz 171 Here we create a tag with name "foo". We indicate that memory size must be computed (option size), everywhere 300 milliseconds (option period). Using such a tag, one can mark values when they are created, for instance, as follows: let cons x = let l = Random.float 10. :: x in Ocamlviz.Tag.mark t l; l The graphical interface displays the number of values and total size for this tag: On this screenshot, one reads that 6,032 values still alive are marked with tag "foo" and use slightly more than 289 kb. A given tag can be used to mark one or several values, possibly of different types. If several values are marked with the same tag and share sub-values, then sharing is taken into account in the computation of memory use. Thus in the following code let l2 = [Random.int 3; Random.int 4] in Ocamlviz.Tag.mark t l2; let l3 = Random.int 5 :: l2 in Ocamlviz.Tag.mark t l3;... the number of values tagged with t is 2 (the lists l2 and l3) and the memory used for this tag is 36 bytes (3 cons blocks, of 3 words each including the header word) Hash Tables. Observing a value from an abstract type from the standard library is not easy: one has to know the type definition and to resort to module

14 172 JFLA 2010 Obj. For instance, the user cannot easily monitor the contents of a hash table of type Hashtbl.t, in particular to determine if the distribution among buckets is uniform. To help in this process, Ocamlviz provides a module to observe a hash table from the standard library. The following line declares a global hash table to be observed under the name "h": let h = Ocamlviz.Hashtable.observe "h" (Hashtbl.create 17) Then the hraphical interface displays several elements regarding this table: It includes the number of empty buckets, the filling rate (that is the proportion of non-empty buckets), and the length of the longest bucket Journal. Finally, Ocamlviz provides a printf-like facility to transmit text messages up to the clients. These messages are sent together with the program execution time. For instance, one can write... Ocamlviz.log ">>> test %d >>>" i; and observe the sequence of such messages in the graphical interface:

15 Ocamlviz Automatic Instrumentation using Camlp4. It can be rather tedious to instrument the code in a systematic way, for instance to observe the time spent in each function in a way similar to a traditional profiler. Ocamlviz provides a small camlp4 module to do that, which automatically inserts the following observations: values for global references of type int, float, bool or string (initialized with a constant); contents of all global hash tables ; number of calls and time spent in each global function. The main purpose of this camlp4 module is to show that such an automatic instrumentation is possible; it is likely that each user will modify it as needed Advanced Features Graphical Interface The graphical interface provided with Ocamlviz proposes other features beyond the ones already presented so far. In particular, the user may stop the display update at any time, to have a detailed look at the values transmitted by the server. The program under execution is not interrupted and keeps sending new data. These data are not lost but stored in a database local to the client (to be described later in Section 3.4). At any time, the user may resume the real-time observation of the program. It resumes where it was stopped, thus with a time shifting. More generally, the user may navigate in time arbitrarily using a cursor, within the limits of a predefined and customizable time window. This feature appears in the upper part of the graphical interface, as follows: Another feature of the interface is the ability to display one or several numerical values within a new graph, as done for garbage-collector data for instance. To do so, the user selects the values to display (checking

16 174 JFLA 2010 them) and then asks for the creation of a new graph or the addition to an existing graph. Such graphs appear in new tabs, but can also be detached from the main window to be observed in parallel Dump Profiling To profile a program using Ocamlviz, the user needs to start the graphical interface after starting the program. This can be particularly disappointing for short life programs, where the graphical interface does not have time to connect to the program to extract interesting information. We found that a good solution to that problem is to ask Ocamlviz to dump all the observations in a file during the execution of such a program, and then to ask the graphical interface to display the content of that dump file. For that, the user just needs to execute the instrumented program with an additional environment variable, called OCAMLVIZ_DUMP, that must contain the name of the file that should be created during the execution, and filled with the observations. Then, we implemented two new options for the graphical interface: Option -i filename tells the graphical interface that it should read observations from the specified filename. Option -tscale factor tells the graphical interface that it should scale the time using the specified factor. The second option is particularly useful for very short life programs, where it is interesting to slow down the execution speed of the program, to be able to observe the program behavior in the graphical interface. The user can also use the OCAMLVIZ_PERIOD environment variable while running the instrumented program to decrease the period between observations, to get a very fine grain monitoring of the program. Using the navigation panel described in the previous section, the user can then inspect the observed values during the execution of the program, with the possibility to go forward and backward in the execution as needed.

17 Ocamlviz 175 serveur clients protocole binaire programme Ocamlviz Net Db affichage... Net Db affichage Figure 6: Client and server parts of Ocamlviz library. 3. Implementation As shown in Figure 6, the Ocamlviz library can be split into two parts. First, a server part, linked to the instrumented program, which communicates with one or several clients via the network. Second, a client part which provides tools to ease the programming of clients. In this section, we show how these two parts are implemented in the current version of Ocamlviz. More precisely, we first describe the communication protocol and its implementation, then we give several details underlying the computation of observations and finally we present the storage module on the client side Communication Protocol An important feature of Ocamlviz is the possibility to remotely observe the execution of a program. In order to be independent of the architectures of the machines used to observe and to run the program, we designed a portable binary protocol and implemented it in the client and server parts of the library. The benefit of such an approach is to allow the communication between different machines (32 and 64-bits for instance, little-endian and big-endian) but also to write clients and servers in any programming language. Thus, it is possible to write a new library to instrument programs written in a language other than OCaml and to observe programs using the current graphical interface of Ocamlviz. Conversely, it is possible to write new clients in any programming language.

18 176 JFLA Messages The current protocol only contains messages from server to clients. It is defined with 3 kinds of messages: type msg = Declare of uid kind string Send of uid value Bind of uid list Messages refer to observed values which are identified by unique integers of type uid. The message Declare (uid, kind, name) declares a new observed value, giving its unique id, its nature of type kind and the name under which is must be displayed. At connection time, the client receives from the server a bunch a Declare messages corresponding to all values observed in the instrumented program so far. The message Send (uid, v) gives an update v for the value identified by uid. Such a message is repeatedly sent for each observed value, even when there is no change. Last, the message Bind uid_list tells the client that several unique identifiers are linked together; it is used in particular to bind the number and the size values for a single tag of type Ocamlviz.Tag.t Binary Protocol Each message is a string of characters. It contains a first 4-byte header indicating its length and a second header indicating its type. Then other values follow, whose type and number differ according to the message type. This representation allows an efficient processing of each message. In particular, a message is not analyzed as long as it is not entirely received. Messages are stored within a global buffer, which is only extended when necessary. This avoids allocating many small strings for messages, which would fragment the heap and slower the garbagecollector. To simplify the implementation and possible extension of the protocol, functions are provided to transmit values of each OCaml base type

19 Ocamlviz 177 and then combined to transmit more complex data. For each base type ttype (8, 16, 32 or 64-bits integers, floating-points, etc.) we introduce a pair of functions as follows: val get_ttype : string int ttype int val buf_ttype : Buffer.t ttype unit Function get_ttype s pos extracts of value of type ttype from string s starting at position posand returns a pair containing this values together with the next position in the string. Function buf_ttype buf v appends value v of type ttype to the buffer buf. To insert the message length, four null bytes are placed in front of the buffer before encoding the message. The string corresponding to the message is then extracted and, its length being now known, its four first bytes are modified accordingly. Last, in order to allow compatibility between 32 and 64-bits architectures, integer values come together with a tag indicating their size (31 or 63-bits int, int32, or int64) The Server Library The server library computes every 100 milliseconds all the currently monitored values, and sends them to all connected clients. The delay between these computations can be adjusted using the OCAMLVIZ_PERIOD environment variable. Two different mechanisms have been implemented to deal with these operations, depending on the constraints on the monitored program: alarms (signals) and threads Using Alarms Alarms can be used to trigger the execution of a function periodically. This technique works well in most cases, because it stops the execution of the program while the function is executing, and thus, it does not suffer from synchronization problems. There are still cases where alarms could raise issues:

20 178 JFLA 2010 In OCaml, alarms are not allowed to interrupt a program at any instant. Instead, OCaml only allows the execution of the alarm code at particular points, to avoid bad interactions with the garbage collector. These points are mostly allocations and input-output operations. Thus, a program in a computation loop, without allocations nor input-output, will never trigger the execution of the alarm code, and the Ocamlviz server will never send any data. To solve this issue, it is possible to add in the code of the loop a call to the Ocamlviz.yield () function to allow OCaml to deal with alarm code. When a program already makes use of alarms, it becomes impossible for Ocamlviz to use them, because there can be only one handler for alarms. It is then required to use threads to avoid modifying the semantics of the original program Using Threads In this second solution, a thread is started when the program is launched. The only task of this thread is to periodically compute the new values of monitored variables, and send them to the connected clients. This solution also suffers from some drawbacks : The use of threads is somewhat limited in OCaml, in particular because the garbage collector is not concurrent. As a consequence, the runtime does not allow the execution of OCaml code in more than one thread concurrently. As for alarms, rescheduling of threads cannot happen at any time, but only within allocations or input-output operations. Here again, an explicit call to Ocamlviz.yield () should be added within computation loops to allow Ocamlviz thread to be scheduled and executed Monitoring Techniques in the Server Monitoring techniques implemented in Ocamlviz try to modify the behavior of the monitored program as little as possible. In particular, to avoid delaying garbage collection of dead values, data that have been marked by the user with Ocamlviz.Tag.mark are stored in a table of weak pointers.

MAT 2377 Solutions to the Mi-term

MAT 2377 Solutions to the Mi-term MAT 2377 Solutions to the Mi-term Tuesday June 16 15 Time: 70 minutes Student Number: Name: Professor M. Alvo This is an open book exam. Standard calculators are permitted. Answer all questions. Place

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

Editing and managing Systems engineering processes at Snecma

Editing and managing Systems engineering processes at Snecma Editing and managing Systems engineering processes at Snecma Atego workshop 2014-04-03 Ce document et les informations qu il contient sont la propriété de Ils ne doivent pas être copiés ni communiqués

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

RAPID 3.34 - Prenez le contrôle sur vos données

RAPID 3.34 - Prenez le contrôle sur vos données RAPID 3.34 - Prenez le contrôle sur vos données Parmi les fonctions les plus demandées par nos utilisateurs, la navigation au clavier et la possibilité de disposer de champs supplémentaires arrivent aux

Plus en détail

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr)

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) Doc.No. : EUM/OPS/TEN/13/706466 Issue : v3 Date : 7 May 2014 WBS : EUMETSAT Eumetsat-Allee 1, D-64295 Darmstadt, Germany Tel: +49 6151 807-7 Fax: +49

Plus en détail

Please find attached a revised amendment letter, extending the contract until 31 st December 2011.

Please find attached a revised amendment letter, extending the contract until 31 st December 2011. Sent: 11 May 2011 10:53 Subject: Please find attached a revised amendment letter, extending the contract until 31 st December 2011. I look forward to receiving two signed copies of this letter. Sent: 10

Plus en détail

Application Form/ Formulaire de demande

Application Form/ Formulaire de demande Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application

Plus en détail

Exercices sur SQL server 2000

Exercices sur SQL server 2000 Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table

Plus en détail

Installation et compilation de gnurbs sous Windows

Installation et compilation de gnurbs sous Windows Installation et compilation de gnurbs sous Windows Installation de l environnement de développement Code::Blocks (Environnement de développement) 1. Télécharger l installateur de Code::Blocks (version

Plus en détail

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

eid Trends in french egovernment Liberty Alliance Workshop April, 20th 2007 French Ministry of Finance, DGME

eid Trends in french egovernment Liberty Alliance Workshop April, 20th 2007 French Ministry of Finance, DGME eid Trends in french egovernment Liberty Alliance Workshop April, 20th 2007 French Ministry of Finance, DGME Agenda What do we have today? What are our plans? What needs to be solved! What do we have today?

Plus en détail

APPENDIX 6 BONUS RING FORMAT

APPENDIX 6 BONUS RING FORMAT #4 EN FRANÇAIS CI-DESSOUS Preamble and Justification This motion is being presented to the membership as an alternative format for clubs to use to encourage increased entries, both in areas where the exhibitor

Plus en détail

Exemple PLS avec SAS

Exemple PLS avec SAS Exemple PLS avec SAS This example, from Umetrics (1995), demonstrates different ways to examine a PLS model. The data come from the field of drug discovery. New drugs are developed from chemicals that

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

LA NETWORK MANAGER remote control software CUSTOM PRESET CREATION PROCEDURE

LA NETWORK MANAGER remote control software CUSTOM PRESET CREATION PROCEDURE LA NETWORK MANAGER remote control software CUSTOM PRESET CREATION PROCEDURE TECHNICAL BULLETIN - VERSION 1.0 Document reference: NWM-CUSTOM-PRS_TB_ML_1-0 Distribution date: July 21 st, 2010 2010 L-ACOUSTICS.

Plus en détail

ENGLISH WEDNESDAY SCHOOL ENTRY TEST ENROLMENT FORM 2015-2016

ENGLISH WEDNESDAY SCHOOL ENTRY TEST ENROLMENT FORM 2015-2016 CHECKLIST FOR APPLICATIONS Please read the following instructions carefully as we will not be able to deal with incomplete applications. Please check that you have included all items. You need to send

Plus en détail

How To connect to TonVPN Max / Comment se connecter à TonVPN Max

How To connect to TonVPN Max / Comment se connecter à TonVPN Max How To connect to TonVPN Max / Comment se connecter à TonVPN Max Note : you need to run all those steps as an administrator or somebody having admin rights on the system. (most of the time root, or using

Plus en détail

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution

Plus en détail

ShortestPath PlugIn for JUMP V 0.1

ShortestPath PlugIn for JUMP V 0.1 V 0.1 Abstract Michaël MICHAUD Copyright 2006 en. This article is about ShortestPath PlugIn for JUMP. It makes it possible to compute the shortest path between two nodes of a graph created from a linear

Plus en détail

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon Lesson Plan Physical Descriptions Objective: Students will comprehend and describe the physical appearance of others. Vocabulary: Elle est Il est Elle/Il est Elle/Il a les cheveux belle vieille grande

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

Zelio S2020 va SR2COM01

Zelio S2020 va SR2COM01 A. Introduction : A. Introduction : Zelio S2020 va SR2COM01 Communication modem via l interface de communication SR2COM01 Modem communication through the modem communication interface SR2COM01 L objectif

Plus en détail

Natixis Asset Management Response to the European Commission Green Paper on shadow banking

Natixis Asset Management Response to the European Commission Green Paper on shadow banking European Commission DG MARKT Unit 02 Rue de Spa, 2 1049 Brussels Belgium markt-consultation-shadow-banking@ec.europa.eu 14 th June 2012 Natixis Asset Management Response to the European Commission Green

Plus en détail

C est quoi, Facebook?

C est quoi, Facebook? C est quoi, Facebook? aujourd hui l un des sites Internet les plus visités au monde. Si tu as plus de 13 ans, tu fais peut-être partie des 750 millions de personnes dans le monde qui ont une page Facebook?

Plus en détail

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on ONTARIO Court File Number at (Name of court) Court office address Applicant(s) (In most cases, the applicant will be a children s aid society.) Full legal name & address for service street & number, municipality,

Plus en détail

Institut français des sciences et technologies des transports, de l aménagement

Institut français des sciences et technologies des transports, de l aménagement Institut français des sciences et technologies des transports, de l aménagement et des réseaux Session 3 Big Data and IT in Transport: Applications, Implications, Limitations Jacques Ehrlich/IFSTTAR h/ifsttar

Plus en détail

Initiative d excellence de l université de Bordeaux. Réunion du Comité stratégique 17-19 décembre 2014. Recommandations

Initiative d excellence de l université de Bordeaux. Réunion du Comité stratégique 17-19 décembre 2014. Recommandations Initiative d excellence de l université de Bordeaux Réunion du Comité stratégique 17-19 décembre 2014 Recommandations 2/1 RECOMMANDATIONS DU COMITE STRATEGIQUE Une feuille de route pour le conseil de gestion

Plus en détail

http://www.bysoft.fr

http://www.bysoft.fr http://www.bysoft.fr Flash Slideshow Module for MagentoCommerce Demo on http://magento.bysoft.fr/ - Module Slideshow Flash pour MagentoCommerce Démonstration sur http://magento.bysoft.fr/ V3.0 ENGLISH

Plus en détail

Food for thought paper by the Coordinator on Reporting 1 PrepCom 3rd Review Conference 6 décembre 2013

Food for thought paper by the Coordinator on Reporting 1 PrepCom 3rd Review Conference 6 décembre 2013 Food for thought paper by the Coordinator on Reporting 1 PrepCom 3rd Review Conference 6 décembre 2013 (slide 1) Mr President, Reporting and exchange of information have always been a cornerstone of the

Plus en détail

Control your dog with your Smartphone. USER MANUAL www.pet-remote.com

Control your dog with your Smartphone. USER MANUAL www.pet-remote.com Control your dog with your Smartphone USER MANUAL www.pet-remote.com Pet-Remote Pet Training Pet-Remote offers a new and easy way to communicate with your dog! With the push of a single button on your

Plus en détail

Contents Windows 8.1... 2

Contents Windows 8.1... 2 Workaround: Installation of IRIS Devices on Windows 8 Contents Windows 8.1... 2 English Français Windows 8... 13 English Français Windows 8.1 1. English Before installing an I.R.I.S. Device, we need to

Plus en détail

How to Login to Career Page

How to Login to Career Page How to Login to Career Page BASF Canada July 2013 To view this instruction manual in French, please scroll down to page 16 1 Job Postings How to Login/Create your Profile/Sign Up for Job Posting Notifications

Plus en détail

Cours de Programmation Orientée Objet

Cours de Programmation Orientée Objet Contrat et application à la librairie standard JAVA mailto:marc.champesme@lipn.univ-paris13.fr 6 février 2011 1 Qu est ce qu une classe? Un exemple en JAVA Résumé Expression du contrat Par des commentaires

Plus en détail

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION 1 12 rue Denis Papin 37300 JOUE LES TOURS Tel: 02.47.68.34.00 Fax: 02.47.68.35.48 www.herve consultants.net contacts@herve consultants.net TABLE DES MATIERES A Objet...1 B Les équipements et pré-requis...2

Plus en détail

Société de Banque et d Expansion

Société de Banque et d Expansion Société de Banque et d Expansion INTERNET BANKING DEMO AND USER GUIDE FOR YOUR ACCOUNTS AT NETSBE.FR FINDING YOUR WAY AROUND WWW.NETSBE.FR www.netsbe.fr INTERNET BANKING DEMO AND USER GUIDE FOR YOUR ACCOUNTS

Plus en détail

deux tâches dans le tableau et à cliquer sur l icône représentant une chaîne dans la barre d outils. 14- Délier les tâches : double cliquer sur la

deux tâches dans le tableau et à cliquer sur l icône représentant une chaîne dans la barre d outils. 14- Délier les tâches : double cliquer sur la MS Project 1- Créer un nouveau projet définir la date du déclenchement (début) ou de la fin : File New 2- Définir les détails du projet : File Properties (permet aussi de voir les détails : coûts, suivi,

Plus en détail

Promotion of bio-methane and its market development through local and regional partnerships. A project under the Intelligent Energy Europe programme

Promotion of bio-methane and its market development through local and regional partnerships. A project under the Intelligent Energy Europe programme Promotion of bio-methane and its market development through local and regional partnerships A project under the Intelligent Energy Europe programme Contract Number: IEE/10/130 Deliverable Reference: W.P.2.1.3

Plus en détail

Guide d'installation rapide TFM-560X YO.13

Guide d'installation rapide TFM-560X YO.13 Guide d'installation rapide TFM-560X YO.13 Table of Contents Français 1 1. Avant de commencer 1 2. Procéder à l'installation 2 Troubleshooting 6 Version 06.08.2011 16. Select Install the software automatically

Plus en détail

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5 RULE 5 - SERVICE OF DOCUMENTS General Rules for Manner of Service Notices of Application and Other Documents 5.01 (1) A notice of application or other document may be served personally, or by an alternative

Plus en détail

UML : Unified Modeling Language

UML : Unified Modeling Language UML : Unified Modeling Language Recommended: UML distilled A brief guide to the standard Object Modeling Language Addison Wesley based on Frank Maurer lecture, Univ. of Calgary in french : uml.free.fr/index.html

Plus en détail

Compliance Sheet. Super Range 71. Product Description

Compliance Sheet. Super Range 71. Product Description Super Range 71 Model SR71-15 SR71-A SR71-C SR71-E SR71-X SR71-USB Product Description 802.11a/n, Mini PCI, 2x2 MIMO 802.11a/b/g/n, Mini PCI, 3x3 MIMO 802.11a/b/g/n, CardBus, 2x2 MIMO 802.11a/b/g/n, PCI

Plus en détail

Object Oriented Parallel Discrete Event Simulation: The PROSIT Approach

Object Oriented Parallel Discrete Event Simulation: The PROSIT Approach INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET AUTOMATIQUE Object Oriented Parallel Discrete Event Simulation: The PROSIT Approach Lionel Mallet and Philippe Mussi N 2232 Avril 1994 PROGRAMME 1 Architectures

Plus en détail

Mon Service Public - Case study and Mapping to SAML/Liberty specifications. Gaël Gourmelen - France Telecom 23/04/2007

Mon Service Public - Case study and Mapping to SAML/Liberty specifications. Gaël Gourmelen - France Telecom 23/04/2007 Mon Service Public - Case study and Mapping to SAML/Liberty specifications Gaël Gourmelen - France Telecom 23/04/2007 Agenda Brief presentation of the "Mon Service Public" project (main features) Detailed

Plus en détail

Nouvelles classes de problèmes pour la fouille de motifs intéressants dans les bases de données 2

Nouvelles classes de problèmes pour la fouille de motifs intéressants dans les bases de données 2 Nouvelles classes de problèmes pour la fouille de motifs intéressants dans les bases de données 2 Lhouari Nourine 1 1 Université Blaise Pascal, CNRS, LIMOS, France SeqBio 2012 Marne la vallée, France 2.

Plus en détail

Academic Project. B3 - Architecture. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Academic Project. B3 - Architecture. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA SUPINFO Academic Dept. Resit Project Academic Project 2012-2013 Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA Conditions d utilisations : SUPINFO International University vous

Plus en détail

Quick start. Pulsar ellipse 300/500/650/800/1200. Pulsar ellipse premium 500/650/800/1200

Quick start. Pulsar ellipse 300/500/650/800/1200. Pulsar ellipse premium 500/650/800/1200 Quick start Pulsar ellipse 300/500/650/800/1200 Pulsar ellipse premium 500/650/800/1200 Using the additional functions available on your Pulsar ellipse Utilisation des fonctions additionnelles de votre

Plus en détail

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32 THAT the proposed clause 6(1), as set out in Clause 6(1) of the Bill, be replaced with the following: Trustee to respond promptly 6(1) A trustee shall respond to a request as promptly as required in the

Plus en détail

AccessLearn Community Group: Introductory Survey. Groupe communautaire AccessLearn : étude introductive. Introduction.

AccessLearn Community Group: Introductory Survey. Groupe communautaire AccessLearn : étude introductive. Introduction. AccessLearn Community Group: Introductory Survey Introduction The W3C Accessible Online Learning Community Group (aka AccessLearn) is a place to discuss issues relating to accessibility and online learning,

Plus en détail

How to Deposit into Your PlayOLG Account

How to Deposit into Your PlayOLG Account How to Deposit into Your PlayOLG Account Option 1: Deposit with INTERAC Online Option 2: Deposit with a credit card Le texte français suit l'anglais. When you want to purchase lottery products or play

Plus en détail

Evaluation de la prime de risques de la vente d une bande d énergie nucléaire

Evaluation de la prime de risques de la vente d une bande d énergie nucléaire 28/3/2011 ANNEXE 6 (Source: Electrabel) Evaluation de la prime de risques de la vente d une bande d énergie nucléaire Si nous vendons une bande d énergie nucléaire à certains clients, que nous garantissons

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE SHOPDECORATION MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des

Plus en détail

CLIM/GTP/27/8 ANNEX III/ANNEXE III. Category 1 New indications/ 1 re catégorie Nouvelles indications

CLIM/GTP/27/8 ANNEX III/ANNEXE III. Category 1 New indications/ 1 re catégorie Nouvelles indications ANNEX III/ANNEXE III PROPOSALS FOR CHANGES TO THE NINTH EDITION OF THE NICE CLASSIFICATION CONCERNING AMUSEMENT APPARATUS OR APPARATUS FOR GAMES/ PROPOSITIONS DE CHANGEMENTS À APPORTER À LA NEUVIÈME ÉDITION

Plus en détail

Stress and Difficulties at School / College

Stress and Difficulties at School / College Stress and Difficulties at School / College This article will deal with the pressures and problems that students face at school and college. It will also discuss the opposite - the positive aspects of

Plus en détail

English version ***La version française suit***

English version ***La version française suit*** 1 of 5 4/26/2013 4:26 PM Subject: CRA/ARC- Reminder - Tuesday, April 30, 2013 is the deadline to file your 2012 income tax and benefit return and pay any / Rappel - Vous avez jusqu'au 30 avril 2013 pour

Plus en détail

A partir de ces différents matériels, l administrateur a déterminé huit configurations différentes. Il vous demande de les compléter.

A partir de ces différents matériels, l administrateur a déterminé huit configurations différentes. Il vous demande de les compléter. Exonet - Ressources mutualisées en réseau Description du thème Propriétés Intitulé long Formation concernée Présentation Modules Activités Compétences ; Savoir-faire Description Ressources mutualisées

Plus en détail

Tex: The book of which I'm the author is an historical novel.

Tex: The book of which I'm the author is an historical novel. page: pror3 1. dont, où, lequel 2. ce dont, ce + preposition + quoi A relative pronoun introduces a clause that explains or describes a previously mentioned noun. In instances where the relative pronoun

Plus en détail

Mode dʼemploi User guide

Mode dʼemploi User guide Mode dʼemploi User guide Urban Connexion Kit for Microsoft Surface Référence Urban Factory ICR32UF Introduction: Vous venez d acheter un kit de connexion Urban Factory pour Microsoft Surface, et nous vous

Plus en détail

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation THE CONSUMER PROTECTION ACT (C.C.S.M. c. C200) Call Centres Telemarketing Sales Regulation LOI SUR LA PROTECTION DU CONSOMMATEUR (c. C200 de la C.P.L.M.) Règlement sur le télémarketing et les centres d'appel

Plus en détail

ENERGY36. Multi-lines electric meter and analyzer. Measurement by open tores 20A, 80A, 120A, 300A, 600A, 1500A, 3000A and 5000A

ENERGY36. Multi-lines electric meter and analyzer. Measurement by open tores 20A, 80A, 120A, 300A, 600A, 1500A, 3000A and 5000A ENERGY36 meter and Active rating Voltage Reactive rating Current Apparent power Frequency Harmonic Line disturbance ENERGY36 is compatible with BMS/BAS and energy efficiency projects Uniphase and triphase

Plus en détail

Become. Business Provider for Matheo Software

Become. Business Provider for Matheo Software Become Business Provider for Matheo Software Who we are? Matheo Software was created in 2003 by business intelligence and information processing professionals from higher education and research. Matheo

Plus en détail

DMX CONTROLEUR. Indicateurs LED : Ils indiquent les fonctionnalités correspondantes.

DMX CONTROLEUR. Indicateurs LED : Ils indiquent les fonctionnalités correspondantes. DMX CONTROLEUR CA-24D CA-2405 Le CA-24D est un contrôleur DMX 24 canaux spécialement conçu pour une utilisation avec le CA-2405. Il est muni d un panneau de commande convivial, de 24 scènes programmables,

Plus en détail

Package Contents. System Requirements. Before You Begin

Package Contents. System Requirements. Before You Begin Package Contents DWA-125 Wireless 150 USB Adapter CD-ROM (contains software, drivers, and manual) Cradle If any of the above items are missing, please contact your reseller. System Requirements A computer

Plus en détail

RFP 1000162739 and 1000163364 QUESTIONS AND ANSWERS

RFP 1000162739 and 1000163364 QUESTIONS AND ANSWERS RFP 1000162739 and 1000163364 QUESTIONS AND ANSWERS Question 10: The following mandatory and point rated criteria require evidence of work experience within the Canadian Public Sector: M3.1.1.C / M3.1.2.C

Plus en détail

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder Page 1 APPENDIX 2 Provisions to be included in the contract between the Provider and the Obligations and rights of the Applicant / Holder Holder 1. The Applicant or Licensee acknowledges that it has read

Plus en détail

A provincial general election is underway. I am writing you to ask for your help to ensure that Ontarians who are homeless are able to participate.

A provincial general election is underway. I am writing you to ask for your help to ensure that Ontarians who are homeless are able to participate. Dear Administrator, A provincial general election is underway. I am writing you to ask for your help to ensure that Ontarians who are homeless are able to participate. Meeting the identification requirements

Plus en détail

Fiche d Inscription / Entry Form

Fiche d Inscription / Entry Form Fiche d Inscription / Entry Form (A renvoyer avant le 15 octobre 2014 Deadline octobrer 15th 2014) Film Institutionnel / Corporate Film Film Marketing Produit / Marketing Product film Film Communication

Plus en détail

Construire son projet : Rédiger la partie impacts (2/4) Service Europe Direction des Programmes et de la Formation pour le Sud

Construire son projet : Rédiger la partie impacts (2/4) Service Europe Direction des Programmes et de la Formation pour le Sud Construire son projet : Rédiger la partie impacts (2/4) Service Europe Direction des Programmes et de la Formation pour le Sud Sommaire Construire son projet : Rédiger la partie impacts (2/4) Comment définir

Plus en détail

COUNCIL OF THE EUROPEAN UNION. Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53

COUNCIL OF THE EUROPEAN UNION. Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53 COUNCIL OF THE EUROPEAN UNION Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53 WORKING DOCUMENT from : Presidency to : delegations No prev. doc.: 12621/08 PI 44 Subject : Revised draft

Plus en détail

AUDIT COMMITTEE: TERMS OF REFERENCE

AUDIT COMMITTEE: TERMS OF REFERENCE AUDIT COMMITTEE: TERMS OF REFERENCE PURPOSE The Audit Committee (the Committee), assists the Board of Trustees to fulfill its oversight responsibilities to the Crown, as shareholder, for the following

Plus en détail

INDUSTRIAL PC 13/11/2007 19/11/2007. Nouveau PC Industriel sur Imprimantes RIP4

INDUSTRIAL PC 13/11/2007 19/11/2007. Nouveau PC Industriel sur Imprimantes RIP4 Technical Service Bulletin FILE CONTROL CREATED DATE MODIFIED DATE FOLDER INDUSTRIAL PC 13/11/2007 19/11/2007 662-02-27011B Nouveau PC Industriel sur Imprimantes RIP4 English version follows. Objet du

Plus en détail

Paxton. ins-20605. Net2 desktop reader USB

Paxton. ins-20605. Net2 desktop reader USB Paxton ins-20605 Net2 desktop reader USB 1 3 2 4 1 2 Desktop Reader The desktop reader is designed to sit next to the PC. It is used for adding tokens to a Net2 system and also for identifying lost cards.

Plus en détail

APPENDIX A ERROR CODES

APPENDIX A ERROR CODES APPENDIX A ERROR CODES Please find below a listing of the Web error messages. New and revised messages are highlighted in yellow. The following messages have been deleted: 132, 142, 143, 146, 170, 171

Plus en détail

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : Housing system est un service gratuit, qui vous propose de vous mettre en relation avec

Plus en détail

REALISATION D UN FLIP BOOK

REALISATION D UN FLIP BOOK REALISATION D UN FLIP BOOK I. Préambule Vous disposez de fichiers sources de qualité pour la réalisation de votre flip book. Il est utile de connaître quelques éléments techniques pour la réalisation de

Plus en détail

Formation en conduite et gestion de projets. Renforcer les capacités des syndicats en Europe

Formation en conduite et gestion de projets. Renforcer les capacités des syndicats en Europe Formation en conduite et gestion de projets Renforcer les capacités des syndicats en Europe Pourquoi la gestion de projets? Le département Formation de l Institut syndical européen (ETUI, European Trade

Plus en détail

Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4

Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4 Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4 Stéphane MARCHINI Responsable Global des services DataCenters Espace Grande Arche Paris La Défense SG figures

Plus en détail

Présentation des états financiers 2014 Presentation of the 2014 Financial Statements

Présentation des états financiers 2014 Presentation of the 2014 Financial Statements Présentation des états financiers 2014 Presentation of the 2014 Financial Statements Les faits saillants Highlights L état financier du MAMROT est très complexe et fournit de nombreuses informations. Cette

Plus en détail

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne Online Applications Tutorial 1/4 Pour postuler aux Appels d Offres de l ENP, vous devez aller sur la plateforme : calls.parisneuroscience.fr.

Plus en détail

Dans une agence de location immobilière...

Dans une agence de location immobilière... > Dans une agence de location immobilière... In a property rental agency... dans, pour et depuis vocabulaire: «une location» et «une situation» Si vous voulez séjourner à Lyon, vous pouvez louer un appartement.

Plus en détail

Optimizing Network Performance in Virtual Machines

Optimizing Network Performance in Virtual Machines Optimizing Network Performance in Virtual Machines THÈSE N O 4267 (2009) PRÉSENTÉE le 27 janvier 2009 À LA FACULTE INFORMATIQUE ET COMMUNICATIONS Laboratoire de systèmes d'exploitation SECTION D'INFORMATIQUE

Plus en détail

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA SUPINFO Academic Dept. Resit Project Academic Project B2- Web Development 2012-2013 Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA Conditions d utilisations : SUPINFO International

Plus en détail

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par. École Doctorale d Informatique, Télécommunications et Électronique de Paris THÈSE présentée à TÉLÉCOM PARISTECH pour obtenir le grade de DOCTEUR de TÉLÉCOM PARISTECH Mention Informatique et Réseaux par

Plus en détail

NCTS INFORMATION QUANT AUX NOUVEAUTES POUR 2010

NCTS INFORMATION QUANT AUX NOUVEAUTES POUR 2010 NCTS INFORMATION QUANT AUX NOUVEAUTES POUR 2010 Sur pied des nouveaux articles 365, paragraphe 4 (NCTS) et 455bis, paragraphe 4 (NCTS-TIR) du Code Communautaire d'application 1, le principal obligé doit

Plus en détail

Principe de TrueCrypt. Créer un volume pour TrueCrypt

Principe de TrueCrypt. Créer un volume pour TrueCrypt Sommaire : Principe de TrueCrypt...1 Créer un volume pour TrueCrypt...1 Premier montage...6 Réglages...8 Save Currently Mounted Volumes as Favorite...8 Settings > Preferences...9 TrueCrypt Traveller pour

Plus en détail

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! > Le passé composé le passé composé C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! «Je suis vieux maintenant, et ma femme est vieille aussi. Nous n'avons pas eu d'enfants.

Plus en détail

To know before to be connected... 2 FTP2SMS... 3 1.1 XML format to send... 3 1.2 File level 1 ( ftp2sms.mt)... 4 1.3 Ack response XML ( ftp2sms.

To know before to be connected... 2 FTP2SMS... 3 1.1 XML format to send... 3 1.2 File level 1 ( ftp2sms.mt)... 4 1.3 Ack response XML ( ftp2sms. FTP2SMS FTP2SMS Content To know before to be connected... 2 FTP2SMS... 3 1.1 XML format to send... 3 1.2 File level 1 ( ftp2sms.mt)... 4 1.3 Ack response XML ( ftp2sms.dc)... 5 1 TO KNOW BEFORE TO BE CONNECTED

Plus en détail

EN UNE PAGE PLAN STRATÉGIQUE

EN UNE PAGE PLAN STRATÉGIQUE EN UNE PAGE PLAN STRATÉGIQUE PLAN STRATÉGIQUE EN UNE PAGE Nom de l entreprise Votre nom Date VALEUR PRINCIPALES/CROYANCES (Devrait/Devrait pas) RAISON (Pourquoi) OBJECTIFS (- AN) (Où) BUT ( AN) (Quoi)

Plus en détail

FRENCH AP Language and Culture SUMMER ASSIGNMENT

FRENCH AP Language and Culture SUMMER ASSIGNMENT FRENCH AP Language and Culture SUMMER ASSIGNMENT Je suis contente de savoir que vous avez choisi de continuer avec vos études du français l année qui vient!! Le but (goal) cet été est de ne pas perdre

Plus en détail

MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION

MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION Ficep Group Company MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION KEEP ADVANCING " Reach your expectations " ABOUT US For 25 years, Steel Projects has developed software for the steel fabrication industry.

Plus en détail

Possible Food Assistance Indicators (at the level of Results)

Possible Food Assistance Indicators (at the level of Results) Possible Food Assistance Indicators (at the level of Results) Comments for IT : 1. Text of predefined indicators cannot be changed by partners. Thus no variables in the predefined text. The only variables

Plus en détail

Notice Technique / Technical Manual

Notice Technique / Technical Manual Contrôle d accès Access control Encodeur USB Mifare ENCOD-USB-AI Notice Technique / Technical Manual SOMMAIRE p.2/10 Sommaire Remerciements... 3 Informations et recommandations... 4 Caractéristiques techniques...

Plus en détail

Acce s aux applications informatiques Supply Chain Fournisseurs

Acce s aux applications informatiques Supply Chain Fournisseurs Acce s aux applications informatiques Supply Chain Fournisseurs Toujours plus de service pour vous ; rapide, pratique, sécurisé, écologique et gratuit! Vous vous connectez à notre site MESSIER BUGATTI

Plus en détail

REAL APPLICATION CLUSTERS

REAL APPLICATION CLUSTERS Oracle upg adm 9i Claude DA COSTA Chap 11 Scalable Real Appli Clusters Page 1/10 REAL APPLICATION CLUSTERS Cash Fusion Shared server_side initialization parameter Oracle upg adm 9i Claude DA COSTA Chap

Plus en détail

1.The pronouns me, te, nous, and vous are object pronouns.

1.The pronouns me, te, nous, and vous are object pronouns. 1.The pronouns me, te, nous, and vous are object pronouns.! Marie t invite au théâtre?!! Oui, elle m invite au théâtre.! Elle te parle au téléphone?!! Oui, elle me parle au téléphone.! Le prof vous regarde?!!!

Plus en détail

If you understand the roles nouns (and their accompanying baggage) play in a sentence...

If you understand the roles nouns (and their accompanying baggage) play in a sentence... If you understand the roles nouns (and their accompanying baggage) play in a sentence...... you can use pronouns with ease (words like lui, leur, le/la/les, eux and elles)...... understand complicated

Plus en détail

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Note: This manual describes the appearance of the USB Stick, as well as the

Plus en détail

Frequently Asked Questions

Frequently Asked Questions GS1 Canada-1WorldSync Partnership Frequently Asked Questions 1. What is the nature of the GS1 Canada-1WorldSync partnership? GS1 Canada has entered into a partnership agreement with 1WorldSync for the

Plus en détail