You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Connection_manager.html
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -99,10 +99,10 @@
99
99
100
100
<sectionid="connection-manager">
101
101
<spanid="id1"></span><h1>Connection Manager<aclass="headerlink" href="#connection-manager" title="Link to this heading"></a></h1>
102
-
<p>To use a data transport layer in your simulator, the first thing you have to do it to call <codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">DTL::create()</span></code> in
102
+
<p>To use a data transport layer in your simulator, the first thing you have to do is to call <codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">DTL::create()</span></code> in
103
103
the <codeclass="docutils literal notranslate"><spanclass="pre">main</span></code> function of your code. This will trigger the creation of the <strong>DTLMod connection manager</strong> and an instance
104
104
of a <aclass="reference internal" href="app_API.html#concept-dtl"><spanclass="std std-ref">DTL</span></a> object.</p>
105
-
<p>The connection manager is a <strong>daemon</strong> SimGrid actor (i.e., an simulated process running in the background and
105
+
<p>The connection manager is a <strong>daemon</strong> SimGrid actor (i.e., a simulated process running in the background and
106
106
automatically killed when the simulation ends) that runs on the first host declared in your platform description. This
107
107
daemon actor takes the newly created <aclass="reference internal" href="app_API.html#concept-dtl"><spanclass="std std-ref">DTL</span></a> object as argument.</p>
108
108
<p>Once started, the connection manager creates two SimGrid message queues (i.e., a rendez-vous point between actors
@@ -118,7 +118,7 @@
118
118
<p>Conversely, if it gets a <strong>disconnection request</strong>, meaning that an actor in your simulator called
119
119
<codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">DTL::disconnect()</span></code>, the connection manager checks whether this actor was still connected. If it was not, it
120
120
advises you to check your code logic. Otherwise, the connection manager removes the actor from the list of the active
121
-
connections, puts an acknowlegment to the disconnecting actor in the second message queue, and waits for the next
121
+
connections, puts an acknowledgment to the disconnecting actor in the second message queue, and waits for the next
122
122
request.</p>
123
123
<p>Note that if during the execution of your simulator all your actors disconnect themselves from the DTL you will receive
124
124
a harmless message warning you that there is <strong>no active connection</strong> at the moment. However, the connection manager
Copy file name to clipboardExpand all lines: Inside_File_engine.html
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -113,7 +113,7 @@
113
113
mechanisms.</p>
114
114
<sectionid="on-the-publisher-side">
115
115
<h2>On the publisher side<aclass="headerlink" href="#on-the-publisher-side" title="Link to this heading"></a></h2>
116
-
<p>The first publisher to call to <codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">begin_transaction()</span></code> marks that a new <aclass="reference internal" href="app_API.html#concept-transaction"><spanclass="std std-ref">Transaction</span></a> is in progress
116
+
<p>The first publisher to call <codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">begin_transaction()</span></code> marks that a new <aclass="reference internal" href="app_API.html#concept-transaction"><spanclass="std std-ref">Transaction</span></a> is in progress
117
117
and increments an internal transaction counter. Then, from the second transaction using that File engine only, the
118
118
publishers check whether the previous transaction is over. To this end, the publishers are blocked on a <strong>condition
119
119
variable</strong>, until all the <strong>write activities</strong> from that transaction are completed. Once the publishers are unblocked,
the name of the <aclass="reference internal" href="app_API.html#concept-stream"><spanclass="std std-ref">Stream</span></a>) to write them. With the <strong>default File transport method</strong>, each publisher
125
125
creates and writes to a file called <codeclass="docutils literal notranslate"><spanclass="pre">data.i</span></code>, where <codeclass="docutils literal notranslate"><spanclass="pre">i</span></code> is the unique index of the publisher.</p>
126
126
<p>The most important call is thus that to <codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">end_transaction()</span></code> where the I/O activities are created and started.
127
-
In this function, each publisher goes over all the write operation it registered during the different calls to the
127
+
In this function, each publisher goes over all the write operations it registered during the different calls to the
128
128
<codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">put()</span></code> functions made in this transaction, and creates the corresponding simulated I/O activities by calling
129
129
the <codeclass="docutils literal notranslate"><spanclass="pre">File::write_async()</span></code> function of the
130
130
<aclass="reference external" href="https://github.com/simgrid/file-system-module">FSMod file system module</a>. These calls are made in <strong>detached</strong> mode,
<p>The last action performed in <codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">end_transaction()</span></code> is only done by the <strong>last publisher</strong> to call the function.
137
137
This actor marks the <aclass="reference internal" href="app_API.html#concept-transaction"><spanclass="std std-ref">Transaction</span></a> as over, increments an internal counter of completed transactions, and
138
138
most importantly, notifies subscribers to that Stream that this transaction is complete. Note that the fact that a
139
-
transaction is complete and the subscribers are notified does not mean that the corresponding I/O actictivites (i.e.,
139
+
transaction is complete and the subscribers are notified does not mean that the corresponding I/O activities (i.e.,
140
140
writing into files) are complete and that the subscribers can start reading the files to get Variables. However, it
141
-
means that the publishers have all the publishers have determined what and where to write and that the subscribers are
141
+
means that all the publishers have determined what and where to write and that the subscribers are
142
142
allowed to use this information to create their I/O activities (i.e., reading from files) as explained in the
143
143
<aclass="reference internal" href="#file-sub-side"><spanclass="std std-ref">On the subscriber side</span></a> section.</p>
144
144
<p>To determine which publisher is the last to call the <codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">end_transaction()</span></code> function, DTLMod relies on a
145
-
synchronization barrier for all the publishers using this Engine. This barrier is created in the very first to
145
+
synchronization barrier for all the publishers using this Engine. This barrier is created on the very first call to
<p>The last operation performed on the publisher side of a File Engine is to <strong>close</strong> the engine by calling the
148
-
<codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">close()</span></code> function. The publishers first have to wait for the completion of the I/O activities strated by the
148
+
<codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">close()</span></code> function. The publishers first have to wait for the completion of the I/O activities started by the
149
149
last transaction performed on this engine, i.e., they are blocked on a condition variable and wait to be notified of
150
150
the respective completion of these activities. Then the last publisher to call the <codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">close()</span></code> function actually
151
151
closes the Engine, as well as all the opened files on the simulated file system. Finally, if the
152
152
<codeclass="xref cpp cpp-func docutils literal notranslate"><spanclass="pre">set_metadata_export()</span></code> function has been called for the <aclass="reference internal" href="app_API.html#concept-stream"><spanclass="std std-ref">Stream</span></a> that created the Engine, this
153
-
publisher export a summary of all the I/O operations performed during the lifetime of the Engine.</p>
153
+
publisher exports a summary of all the I/O operations performed during the lifetime of the Engine.</p>
154
154
</section>
155
155
<sectionid="on-the-subscriber-side">
156
156
<spanid="file-sub-side"></span><h2>On the subscriber side<aclass="headerlink" href="#on-the-subscriber-side" title="Link to this heading"></a></h2>
@@ -170,12 +170,12 @@ <h3>Testing your build<a class="headerlink" href="#testing-your-build" title="Li
170
170
<codeclass="docutils literal notranslate"><spanclass="pre">make</span><spanclass="pre">unit_tests</span></code>. You can then run them with <codeclass="docutils literal notranslate"><spanclass="pre">./unit_tests</span></code>. Additionally, the Python API can also be tested as
<br><br><p>On the publisher side, one or more applications (e.g., large-scale physics simulations) produce data, represented by
114
114
multiple <strong>variables</strong>, and publish them to the DTL within a <strong>transaction</strong> using a specific <strong>stream</strong>. On the
@@ -134,7 +134,7 @@ <h2>What DTLMod allows you to do<a class="headerlink" href="#what-dtlmod-allows-
<p>Finally, <codeclass="docutils literal notranslate"><spanclass="pre">--log=no_loc</span></code> hides the source locations (file names and line numbers) from where the logs are produced.</p>
Copy file name to clipboardExpand all lines: New_project.html
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -104,7 +104,7 @@
104
104
<spanid="start-new-project"></span><h1>Start a new project<aclass="headerlink" href="#start-a-new-project" title="Link to this heading"></a></h1>
105
105
<p>It is not advised to modify the source code of DTLMod directly, as it would make it difficult to upgrade to the next
106
106
version of the library. Instead, you should create your own working directory somewhere on your disk (e.g.,
107
-
<codeclass="docutils literal notranslate"><spanclass="pre">~home/MySimulator/</span></code>), and develop your simulate in there.</p>
107
+
<codeclass="docutils literal notranslate"><spanclass="pre">~/MySimulator/</span></code>), and develop your simulator there.</p>
108
108
<sectionid="building-your-project-with-cmake">
109
109
<h2>Building your project with CMake<aclass="headerlink" href="#building-your-project-with-cmake" title="Link to this heading"></a></h2>
110
110
<p>Here follows a <codeclass="docutils literal notranslate"><spanclass="pre">CMakeLists.txt</span></code> file that you can use as a starting point for your DTLMod-based project. It builds a
0 commit comments