Skip to content

Commit ffedc91

Browse files
committed
GitHub build 207
1 parent 9423074 commit ffedc91

29 files changed

+120
-120
lines changed

Connection_manager.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,10 @@
9999

100100
<section id="connection-manager">
101101
<span id="id1"></span><h1>Connection Manager<a class="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 <code class="xref cpp cpp-func docutils literal notranslate"><span class="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 <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">DTL::create()</span></code> in
103103
the <code class="docutils literal notranslate"><span class="pre">main</span></code> function of your code. This will trigger the creation of the <strong>DTLMod connection manager</strong> and an instance
104104
of a <a class="reference internal" href="app_API.html#concept-dtl"><span class="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
106106
automatically killed when the simulation ends) that runs on the first host declared in your platform description. This
107107
daemon actor takes the newly created <a class="reference internal" href="app_API.html#concept-dtl"><span class="std std-ref">DTL</span></a> object as argument.</p>
108108
<p>Once started, the connection manager creates two SimGrid message queues (i.e., a rendez-vous point between actors
@@ -118,7 +118,7 @@
118118
<p>Conversely, if it gets a <strong>disconnection request</strong>, meaning that an actor in your simulator called
119119
<code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">DTL::disconnect()</span></code>, the connection manager checks whether this actor was still connected. If it was not, it
120120
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
122122
request.</p>
123123
<p>Note that if during the execution of your simulator all your actors disconnect themselves from the DTL you will receive
124124
a harmless message warning you that there is <strong>no active connection</strong> at the moment. However, the connection manager

Engines.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
<li><p><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">close()</span></code></p></li>
109109
</ul>
110110
</div></blockquote>
111-
<p>However, this simple API hides more complex behaviors that depend on the engine type (i.e., File or Staging) and of
111+
<p>However, this simple API hides more complex behaviors that depend on the engine type (i.e., File or Staging) and on
112112
whether these functions are called on the publisher or subscriber side. In this section, we describe the internal
113113
behavior of the File and Staging engines.</p>
114114
</section>

Inside_File_engine.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
mechanisms.</p>
114114
<section id="on-the-publisher-side">
115115
<h2>On the publisher side<a class="headerlink" href="#on-the-publisher-side" title="Link to this heading"></a></h2>
116-
<p>The first publisher to call to <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">begin_transaction()</span></code> marks that a new <a class="reference internal" href="app_API.html#concept-transaction"><span class="std std-ref">Transaction</span></a> is in progress
116+
<p>The first publisher to call <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">begin_transaction()</span></code> marks that a new <a class="reference internal" href="app_API.html#concept-transaction"><span class="std std-ref">Transaction</span></a> is in progress
117117
and increments an internal transaction counter. Then, from the second transaction using that File engine only, the
118118
publishers check whether the previous transaction is over. To this end, the publishers are blocked on a <strong>condition
119119
variable</strong>, until all the <strong>write activities</strong> from that transaction are completed. Once the publishers are unblocked,
@@ -124,7 +124,7 @@ <h2>On the publisher side<a class="headerlink" href="#on-the-publisher-side" tit
124124
the name of the <a class="reference internal" href="app_API.html#concept-stream"><span class="std std-ref">Stream</span></a>) to write them. With the <strong>default File transport method</strong>, each publisher
125125
creates and writes to a file called <code class="docutils literal notranslate"><span class="pre">data.i</span></code>, where <code class="docutils literal notranslate"><span class="pre">i</span></code> is the unique index of the publisher.</p>
126126
<p>The most important call is thus that to <code class="xref cpp cpp-func docutils literal notranslate"><span class="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
128128
<code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">put()</span></code> functions made in this transaction, and creates the corresponding simulated I/O activities by calling
129129
the <code class="docutils literal notranslate"><span class="pre">File::write_async()</span></code> function of the
130130
<a class="reference external" href="https://github.com/simgrid/file-system-module">FSMod file system module</a>. These calls are made in <strong>detached</strong> mode,
@@ -136,21 +136,21 @@ <h2>On the publisher side<a class="headerlink" href="#on-the-publisher-side" tit
136136
<p>The last action performed in <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">end_transaction()</span></code> is only done by the <strong>last publisher</strong> to call the function.
137137
This actor marks the <a class="reference internal" href="app_API.html#concept-transaction"><span class="std std-ref">Transaction</span></a> as over, increments an internal counter of completed transactions, and
138138
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.,
140140
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
142142
allowed to use this information to create their I/O activities (i.e., reading from files) as explained in the
143143
<a class="reference internal" href="#file-sub-side"><span class="std std-ref">On the subscriber side</span></a> section.</p>
144144
<p>To determine which publisher is the last to call the <code class="xref cpp cpp-func docutils literal notranslate"><span class="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
146146
<code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">end_transaction()</span></code>.</p>
147147
<p>The last operation performed on the publisher side of a File Engine is to <strong>close</strong> the engine by calling the
148-
<code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">close()</span></code> function. The publishers first have to wait for the completion of the I/O activities strated by the
148+
<code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">close()</span></code> function. The publishers first have to wait for the completion of the I/O activities started by the
149149
last transaction performed on this engine, i.e., they are blocked on a condition variable and wait to be notified of
150150
the respective completion of these activities. Then the last publisher to call the <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">close()</span></code> function actually
151151
closes the Engine, as well as all the opened files on the simulated file system. Finally, if the
152152
<code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">set_metadata_export()</span></code> function has been called for the <a class="reference internal" href="app_API.html#concept-stream"><span class="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>
154154
</section>
155155
<section id="on-the-subscriber-side">
156156
<span id="file-sub-side"></span><h2>On the subscriber side<a class="headerlink" href="#on-the-subscriber-side" title="Link to this heading"></a></h2>

Inside_Staging_engine.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
<li><p>When a publisher <strong>puts</strong> a variable into a stream, it asynchronously waits for data requests (using
111111
zero-simulated-cost message queues) from any subscriber that opened that stream;</p></li>
112112
<li><p>When a subscriber <strong>gets</strong> (a subset of) this variable from the stream, it computes which publishers own pieces
113-
of its local view of the variable and send them each a request to put the corresponding pieces, defined by offsets
113+
of its local view of the variable and sends them each a request to put the corresponding pieces, defined by offsets
114114
and element counts, in dedicated mailboxes (resp. message queues);</p></li>
115115
<li><p>When publishers end their transaction, they asynchronously put the requested pieces in these mailboxes (resp.
116116
message queues). DTLMod then simulates the corresponding data exchanges, and may possibly force actors to wait for

Installing_DTLMod.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@
115115
<dl class="simple">
116116
<dt>C++ compiler</dt><dd><p>Install a version recent enough to support the C++17 standard.</p>
117117
</dd>
118-
<dt>Python 3</dt><dd><p>DTLMod should build without Python which is only needed by the regression tests of the python API.</p>
118+
<dt>Python 3</dt><dd><p>DTLMod should build without Python, which is only needed for the regression tests of the Python API.</p>
119119
</dd>
120-
<dt>cmake</dt><dd><p>The minimal recommended version is v3.12</p>
120+
<dt>cmake</dt><dd><p>The minimum recommended version is v3.12</p>
121121
</dd>
122122
<dt>boost mandatory components (at least v1.48)</dt><dd><ul class="simple">
123123
<li><p>On Debian / Ubuntu: <code class="docutils literal notranslate"><span class="pre">apt</span> <span class="pre">install</span> <span class="pre">libboost-dev</span></code></p></li>
@@ -151,7 +151,7 @@ <h3>Getting the source<a class="headerlink" href="#getting-the-source" title="Li
151151
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>..
152152
</pre></div>
153153
</div>
154-
<p>To benefit of the latest developments, get the current git version and recompile it as with stable archives.</p>
154+
<p>To benefit from the latest developments, get the current git version and recompile it as with stable archives.</p>
155155
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/simgrid/DTLMod.git
156156
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>DTLMod
157157
<span class="gp">$ </span>mkdir<span class="w"> </span>build
@@ -170,12 +170,12 @@ <h3>Testing your build<a class="headerlink" href="#testing-your-build" title="Li
170170
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">unit_tests</span></code>. You can then run them with <code class="docutils literal notranslate"><span class="pre">./unit_tests</span></code>. Additionally, the Python API can also be tested as
171171
follows:</p>
172172
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>test/python
173-
<span class="gp">$ </span>python<span class="w"> </span>unit_tests_python.pymkdir<span class="w"> </span>build
173+
<span class="gp">$ </span>python<span class="w"> </span>unit_tests_python.py
174174
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>-
175175
</pre></div>
176176
</div>
177-
<p>We run both test suites on every commit as part of a <strong>github action</strong> and the results can be found
178-
<a class="reference external" href="https://github.com/simgrid/DTLMod/actions">there</a>.</p>
177+
<p>We run both test suites on every commit as part of a <strong>GitHub Action</strong> and the results can be found
178+
<a class="reference external" href="https://github.com/simgrid/DTLMod/actions">here</a>.</p>
179179
</section>
180180
<section id="python-specific-instructions">
181181
<h3>Python-specific instructions<a class="headerlink" href="#python-specific-instructions" title="Link to this heading"></a></h3>

Introduction.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@
106106
<span id="intro-concepts"></span><h1>Introduction<a class="headerlink" href="#introduction" title="Link to this heading"></a></h1>
107107
<section id="what-is-dtlmod">
108108
<h2>What is DTLMod<a class="headerlink" href="#what-is-dtlmod" title="Link to this heading"></a></h2>
109-
<p>A <strong>data transport layer</strong> can is the central component in a <strong>publish-subscribe system</strong>, that connects applications
110-
that produce data objects to those which consume them, moves these data objects, and keeps track of metadata.</p>
111-
<p>The figure below shows a generic data transport layer and introduces the terminology by DTLMod.</p>
109+
<p>A <strong>data transport layer</strong> is the central component in a <strong>publish-subscribe system</strong> that connects applications
110+
that produce data objects to those that consume them, moves these data objects, and keeps track of metadata.</p>
111+
<p>The figure below shows a generic data transport layer and introduces the terminology used by DTLMod.</p>
112112
<a class="reference internal image-reference" href="_images/DTL-overview.png"><img alt="_images/DTL-overview.png" class="align-center" src="_images/DTL-overview.png" style="width: 80%;" /></a>
113113
<br><br><p>On the publisher side, one or more applications (e.g., large-scale physics simulations) produce data, represented by
114114
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-
134134
<a class="reference external" href="https://simgrid.org/doc/latest/Tutorial_MPI_Applications.html">SMPI</a></p></li>
135135
<li><p><strong>Compare</strong> the behavior and performance, at scale, of different data transport configurations and study the
136136
effects of resource allocation strategies on performance.</p></li>
137-
<li><p><strong>Explore</strong> “what-if” scenarios in which you can scale of alter the performance your computing and storage
137+
<li><p><strong>Explore</strong> “what-if” scenarios in which you can scale or alter the performance of your computing and storage
138138
infrastructure, inject delays or failures, or modify the structure of your in situ workflow.</p></li>
139139
</ul>
140140
</dd>
@@ -148,7 +148,7 @@ <h2>Anatomy of a project that uses DTLMod<a class="headerlink" href="#anatomy-of
148148
<li><p>A set of <strong>processes</strong> that simulate the logic of each component of an in situ workflow using either the S4U API of
149149
SimGrid or as part of a full-fledged MPI parallel application, in combination with the API of DTLMod for everything
150150
related to data transport.</p></li>
151-
<li><p>A <strong>simulated computing and storage infrastructure</strong> which consists in a description (in either XML or C++) of the
151+
<li><p>A <strong>simulated computing and storage infrastructure</strong> which consists of a description (in either XML or C++) of the
152152
hardware (e.g., compute nodes, network links, disks) of this distributed system.</p></li>
153153
<li><p>A <strong>deployment</strong> of the defined processes. To simulate their execution on the simulated infrastructure, you have to
154154
describe how they are deployed on individual computing resources.</p></li>

Logging.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ <h2>Activating logging categories<a class="headerlink" href="#activating-logging
209209
we refer you to the
210210
<a class="reference external" href="https://simgrid.org/doc/latest/Configuring_SimGrid.html#format-configuration">SimGrid documentation</a>.</p>
211211
<p>Finally, <code class="docutils literal notranslate"><span class="pre">--log=no_loc</span></code> hides the source locations (file names and line numbers) from where the logs are produced.</p>
212-
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>./my_simulator<span class="w"> </span>--log<span class="o">=</span>mycat.threshold:debug<span class="w"> </span>--log<span class="o">=</span>mycat.fmt:%m<span class="w"> </span>--no-loc
212+
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>./my_simulator<span class="w"> </span>--log<span class="o">=</span>mycat.threshold:debug<span class="w"> </span>--log<span class="o">=</span>mycat.fmt:%m<span class="w"> </span>--log<span class="o">=</span>no_loc
213213
</pre></div>
214214
</div>
215215
<p>To configure and activate a logging category from your simulator code, use the following function (declared in

New_project.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
<span id="start-new-project"></span><h1>Start a new project<a class="headerlink" href="#start-a-new-project" title="Link to this heading"></a></h1>
105105
<p>It is not advised to modify the source code of DTLMod directly, as it would make it difficult to upgrade to the next
106106
version of the library. Instead, you should create your own working directory somewhere on your disk (e.g.,
107-
<code class="docutils literal notranslate"><span class="pre">~home/MySimulator/</span></code>), and develop your simulate in there.</p>
107+
<code class="docutils literal notranslate"><span class="pre">~/MySimulator/</span></code>), and develop your simulator there.</p>
108108
<section id="building-your-project-with-cmake">
109109
<h2>Building your project with CMake<a class="headerlink" href="#building-your-project-with-cmake" title="Link to this heading"></a></h2>
110110
<p>Here follows a <code class="docutils literal notranslate"><span class="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

Comments
 (0)