<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sunfish.git/simulator/opendc-compute/opendc-compute-simulator/src/test, branch master</title>
<subtitle>The OpenDC BSc thesis repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/'/>
<entry>
<title>build: Migrate to flat project structure</title>
<updated>2021-04-25T14:01:14+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-04-25T14:01:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=cd0b45627f0d8da8c8dc4edde223f3c36e9bcfbf'/>
<id>cd0b45627f0d8da8c8dc4edde223f3c36e9bcfbf</id>
<content type='text'>
This change updates the project structure to become flattened.
Previously, the simulator, frontend and API each lived into their own
directory.

With this change, all modules of the project live in the top-level
directory of the repository. This should improve discoverability of
modules of the project.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change updates the project structure to become flattened.
Previously, the simulator, frontend and API each lived into their own
directory.

With this change, all modules of the project live in the top-level
directory of the repository. This should improve discoverability of
modules of the project.
</pre>
</div>
</content>
</entry>
<entry>
<title>simulator: Migrate to SimulationCoroutineDispatcher</title>
<updated>2021-04-21T14:37:18+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-04-21T14:35:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=62678b2890a7f3640836b99ca2fec9efd7485929'/>
<id>62678b2890a7f3640836b99ca2fec9efd7485929</id>
<content type='text'>
This change migrates the remainder of the codebase to the
SimulationCoroutineDispatcher implementation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change migrates the remainder of the codebase to the
SimulationCoroutineDispatcher implementation.
</pre>
</div>
</content>
</entry>
<entry>
<title>simulator: Introduce SimulationCoroutineDispatcher</title>
<updated>2021-04-21T14:37:18+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-04-21T12:30:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=1c0568c31d60d4e690b4b9aec2e14f660b72a5c8'/>
<id>1c0568c31d60d4e690b4b9aec2e14f660b72a5c8</id>
<content type='text'>
This change introduces the SimulationCoroutineDispatcher implementation
which replaces the TestCoroutineDispatcher for running single-threaded
simulations.

Previously, we used the TestCoroutineDispatcher from the
kotlinx-coroutines-test modules for running simulations. However, this
module is aimed at coroutine tests and not at simulations.

In particular, having to construct a Clock object each time for the
TestCoroutineDispatcher caused a lot of unnecessary lines. With the new
approach, the SimulationCoroutineDispatcher automatically exposes a
usable Clock object.

In addition to ergonomic benefits, the SimulationCoroutineDispatcher is
much faster than the TestCoroutineDispatcher due to the assumption that
simulations run in only a single thread. As a result, the dispatcher
does not need to perform synchronization and can use the fast
PriorityQueue implementation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change introduces the SimulationCoroutineDispatcher implementation
which replaces the TestCoroutineDispatcher for running single-threaded
simulations.

Previously, we used the TestCoroutineDispatcher from the
kotlinx-coroutines-test modules for running simulations. However, this
module is aimed at coroutine tests and not at simulations.

In particular, having to construct a Clock object each time for the
TestCoroutineDispatcher caused a lot of unnecessary lines. With the new
approach, the SimulationCoroutineDispatcher automatically exposes a
usable Clock object.

In addition to ergonomic benefits, the SimulationCoroutineDispatcher is
much faster than the TestCoroutineDispatcher due to the assumption that
simulations run in only a single thread. As a result, the dispatcher
does not need to perform synchronization and can use the fast
PriorityQueue implementation.
</pre>
</div>
</content>
</entry>
<entry>
<title>simulator: Divide CPU usage over all cores</title>
<updated>2021-04-08T09:48:57+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-04-08T09:47:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=41ad2f2950550fcd95a599bd8869aa191c88396a'/>
<id>41ad2f2950550fcd95a599bd8869aa191c88396a</id>
<content type='text'>
This change fixes an issue in SimTraceWorkload where the CPU usage was
not divided across the cores, but was instead requested for all cores.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change fixes an issue in SimTraceWorkload where the CPU usage was
not divided across the cores, but was instead requested for all cores.
</pre>
</div>
</content>
</entry>
<entry>
<title>compute: Migrate compute service simulator to OpenTelemetry</title>
<updated>2021-03-27T11:36:18+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-03-27T11:33:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=5b0eaf76ec00192c755b268b7655f6463c5bc62f'/>
<id>5b0eaf76ec00192c755b268b7655f6463c5bc62f</id>
<content type='text'>
This change updates the compute service simulator to use OpenTelemetry
for reporting metrics of the (simulated) hosts as opposed to using
custom event flows.

This approach is more generic, flexible and possibly offers better
performance as we can collect metrics of all services in a single sweep,
as opposed to listening to several services and each invoking the
handlers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change updates the compute service simulator to use OpenTelemetry
for reporting metrics of the (simulated) hosts as opposed to using
custom event flows.

This approach is more generic, flexible and possibly offers better
performance as we can collect metrics of all services in a single sweep,
as opposed to listening to several services and each invoking the
handlers.
</pre>
</div>
</content>
</entry>
<entry>
<title>simulator: Move power models to simulator module</title>
<updated>2021-03-24T12:05:33+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-03-24T12:05:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=69598598be2c248acc49e40607b3dd0998ec1ca5'/>
<id>69598598be2c248acc49e40607b3dd0998ec1ca5</id>
<content type='text'>
This change moves the power models from the `opendc-compute-simulator`
to the `opendc-simulator-compute` module, since it better fits the scope
of the models and allows them to be re-used for other purposes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change moves the power models from the `opendc-compute-simulator`
to the `opendc-simulator-compute` module, since it better fits the scope
of the models and allows them to be re-used for other purposes.
</pre>
</div>
</content>
</entry>
<entry>
<title>simulator: Remove generic resource constraint from resource model</title>
<updated>2021-03-22T17:16:40+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-03-22T15:45:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=3718c385f84b463ac799080bb5603e0011adcd7d'/>
<id>3718c385f84b463ac799080bb5603e0011adcd7d</id>
<content type='text'>
This change removes the generic resource constraint (e.g., SimResource)
and replaces it by a simple capacity property. In the future, users
should handle the resource properties on a higher level.

This change simplifies compositions of consumers and providers by not
requiring a translation from resource to capacity.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change removes the generic resource constraint (e.g., SimResource)
and replaces it by a simple capacity property. In the future, users
should handle the resource properties on a higher level.

This change simplifies compositions of consumers and providers by not
requiring a translation from resource to capacity.
</pre>
</div>
</content>
</entry>
<entry>
<title>simulator: Expose capacity and remaining work outside consumer callback</title>
<updated>2021-03-22T15:47:56+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-03-22T11:13:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=f616b720406250b1415593ff04c9d910b1fda54c'/>
<id>f616b720406250b1415593ff04c9d910b1fda54c</id>
<content type='text'>
This change changes the consumer and context interfaces to expose the
provider capacity and remaining work via the context instance as opposed
to only via the callback. This simplifies aggregation of resources.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change changes the consumer and context interfaces to expose the
provider capacity and remaining work via the context instance as opposed
to only via the callback. This simplifies aggregation of resources.
</pre>
</div>
</content>
</entry>
<entry>
<title>simulator: Re-design consumer interface to support capacity negotiation</title>
<updated>2021-03-22T15:47:56+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-03-18T15:25:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=9dab4d7b3921cd48199d773c7dc4bae0f2273223'/>
<id>9dab4d7b3921cd48199d773c7dc4bae0f2273223</id>
<content type='text'>
This change re-designs the SimResourceConsumer interface to support in
the future capacity negotiation. This basically means that the consumer
will be informed directly when not enough capacity is available, instead
of after the deadline specified by the consumer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change re-designs the SimResourceConsumer interface to support in
the future capacity negotiation. This basically means that the consumer
will be informed directly when not enough capacity is available, instead
of after the deadline specified by the consumer.
</pre>
</div>
</content>
</entry>
<entry>
<title>simulator: Add the CPU power model from iCanCloud/E-mc2</title>
<updated>2021-03-18T10:37:43+00:00</updated>
<author>
<name>Hongyu</name>
<email>hongyuhe.cs@googlemail.com</email>
</author>
<published>2021-03-16T08:08:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=dd24782f3710678151c80f8ad365eecc7389b6f8'/>
<id>dd24782f3710678151c80f8ad365eecc7389b6f8</id>
<content type='text'>
This change implements the CPU energy model with p-states from iCanCloud/E-mc2:

- Only pushed a portion of the code for discussion as not sure if the idea is
  on track.
- Inline comments have been added, and formal documents will follow once the
  model is finalized.
- The p-state power consumptions are currently hard-coded in a companion
  object, which should be improved in the next PR(s).

**Breaking Changes**

- CpuPowerModel: directly interact with the machine it is measuring.
- SimBareMetalMachine: expose the speeds of its CPU cores and its clock
  instant.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change implements the CPU energy model with p-states from iCanCloud/E-mc2:

- Only pushed a portion of the code for discussion as not sure if the idea is
  on track.
- Inline comments have been added, and formal documents will follow once the
  model is finalized.
- The p-state power consumptions are currently hard-coded in a companion
  object, which should be improved in the next PR(s).

**Breaking Changes**

- CpuPowerModel: directly interact with the machine it is measuring.
- SimBareMetalMachine: expose the speeds of its CPU cores and its clock
  instant.
</pre>
</div>
</content>
</entry>
</feed>
