<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sunfish.git/opendc-common, 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>feat: managed to retrieve metric-by-metric from Redis in real time</title>
<updated>2026-06-17T16:08:56+00:00</updated>
<author>
<name>mjkwiatkowski</name>
<email>mati.rewa@gmail.com</email>
</author>
<published>2026-06-17T16:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=4562f52c9b540944200b33d4ffbd60b3cbc5ee79'/>
<id>4562f52c9b540944200b33d4ffbd60b3cbc5ee79</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: gradle is not building but the project is running</title>
<updated>2026-06-16T12:29:55+00:00</updated>
<author>
<name>mjkwiatkowski</name>
<email>mati.rewa@gmail.com</email>
</author>
<published>2026-06-16T12:29:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=78a9d920cc8aca951aff798272b0d5e7a2e356b9'/>
<id>78a9d920cc8aca951aff798272b0d5e7a2e356b9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: fixing gradle dependencies</title>
<updated>2026-06-16T12:07:43+00:00</updated>
<author>
<name>mjkwiatkowski</name>
<email>mati.rewa@gmail.com</email>
</author>
<published>2026-06-16T12:07:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=69268d7d8923699e83a1d19ec5eab227198f3581'/>
<id>69268d7d8923699e83a1d19ec5eab227198f3581</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: fixing bugs that arise from different compute monitors</title>
<updated>2026-06-16T10:21:53+00:00</updated>
<author>
<name>mjkwiatkowski</name>
<email>mati.rewa@gmail.com</email>
</author>
<published>2026-06-16T10:21:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=3a4363d0bba006c6a278c12a3264b8976b8d4485'/>
<id>3a4363d0bba006c6a278c12a3264b8976b8d4485</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: migrated the past project to the sunfish repo</title>
<updated>2026-06-15T21:48:44+00:00</updated>
<author>
<name>mjkwiatkowski</name>
<email>mati.rewa@gmail.com</email>
</author>
<published>2026-06-15T21:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=0731bd58889df127ef87aba2590d505d79e6646f'/>
<id>0731bd58889df127ef87aba2590d505d79e6646f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented Single GPU Support &amp; outline of host-level allocation policies (#342)</title>
<updated>2025-06-22T10:31:21+00:00</updated>
<author>
<name>Niels Thiele</name>
<email>noleu66@posteo.net</email>
</author>
<published>2025-06-22T10:31:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=0203254b709614fa732c114aa25916f61b8b3275'/>
<id>0203254b709614fa732c114aa25916f61b8b3275</id>
<content type='text'>
* renamed performance counter to distinguish different resource types

* added GPU, modelled similar to CPU

* added GPUs to machine model

* list of GPUs instead of single instance

* renamed memory speed to bandwidth

* enabled parsing of GPU resources

* split powermodel into cpu and GPU powermodel

* added gpu parsing tests

* added idea of host level scheduling

* added tests for multi gpu parsing

* renamed powermodel to cpupowermodel

* clarified naming of cpu and gpu components

* added resource type to flow suplier and edge

* added resourcetype

* added GPU components and resource type to fragments

* added GPU to workload and updated resource usage retrieval

* implemented first version of multi resource

* added name to workload

* renamed perfomance counters

* removed commented out code

* removed deprecated comments

* included demand and supply into calculations

* resolving rebase mismatches

* moved resource type from flowedge class to common package

* added available resources to machinees

* cleaner separation if workload is started of simmachine or vm

* Replaced exception with dedicated enum

* Only looping over resources that are actually used

* using hashmaps to handle resourcetype instead of arrays for readability

* fixed condition

* tracking finished workloads per resource type

* removed resource type from flowedge

* made supply and demand distribution resource specific

* added power model for GPU

* removed unused test setup

* removed depracated comments

* removed unused parameter

* added ID for GPU

* added GPUs and GPU performance counters (naively)

* implemented capturing of GPU statistics

* added reminders for future implementations

* renamed properties for better identification

* added capturing GPU statistics

* implemented first tests for GPUs

* unified access to performance counters

* added interface for general compute resource handling

* implemented multi resource support in simmachine

* added individual edge to VM per resource

* extended compute resource interface

* implemented multi-resource support in PSU

* implemented generic retrieval of computeresources

* implemented mult-resource suppport in vm

* made method use more resource specific

* implemented simple GPU tests

* rolled back frquency and demand use

* made naming independent of used resource

* using workloads resources instead of VMs to determine available resource

* implemented determination of used resources in workload

* removed logging statements

* implemented reading from workload

* fixed naming for host-level allocation

* fixed next deadline calculation

* fixed forwarding supply

* reduced memory footprint

* made GPU powermodel nullable

* maded Gpu powermodel configurable in topology

* implemented tests for basic gpu scheduler

* added gpu properties

* implemented weights, filter and simple cpu-gpu scheduler

* spotless apply

* spotless apply pt. 2

* fixed capitalization

* spotless kotlin run

* implemented coloumn export

* todo update

* removed code comments

* Merged PerformanceCounter classes into one &amp; removed interface

* removed GPU  specific powermodel

* Rebase master: kept both versions of TopologyFactories

* renamed CpuPowermodel to resource independent Powermodel

Moved it from Cpu package to power package

* implementated default of getResourceType &amp; removed overrides if possible

* split getResourceType into Consumer and Supplier

* added power as resource type

* reduced supply demand from arrayList to single value

* combining GPUs into one large GPU, until full multi-gpu support

* merged distribution policy enum with corresponding factory

* added comment

* post-rebase fixes

* aligned naming

* Added GPU metrics to task output

* Updates power resource type to uppercase.

Standardizes the `ResourceType.Power` enum to `ResourceType.POWER`
for consistency with other resource types and improved readability.

* Removes deprecated test assertions

Removes commented-out assertions in GPU tests.

These assertions are no longer needed and clutter the test code.

* Renames MaxMinFairnessStrategy to Policy

Renames MaxMinFairnessStrategy to MaxMinFairnessPolicy for
clarity and consistency with naming conventions. This change
affects the factory and distributor to use the updated name.

* applies spotless

* nulls GPUs as it is not used</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* renamed performance counter to distinguish different resource types

* added GPU, modelled similar to CPU

* added GPUs to machine model

* list of GPUs instead of single instance

* renamed memory speed to bandwidth

* enabled parsing of GPU resources

* split powermodel into cpu and GPU powermodel

* added gpu parsing tests

* added idea of host level scheduling

* added tests for multi gpu parsing

* renamed powermodel to cpupowermodel

* clarified naming of cpu and gpu components

* added resource type to flow suplier and edge

* added resourcetype

* added GPU components and resource type to fragments

* added GPU to workload and updated resource usage retrieval

* implemented first version of multi resource

* added name to workload

* renamed perfomance counters

* removed commented out code

* removed deprecated comments

* included demand and supply into calculations

* resolving rebase mismatches

* moved resource type from flowedge class to common package

* added available resources to machinees

* cleaner separation if workload is started of simmachine or vm

* Replaced exception with dedicated enum

* Only looping over resources that are actually used

* using hashmaps to handle resourcetype instead of arrays for readability

* fixed condition

* tracking finished workloads per resource type

* removed resource type from flowedge

* made supply and demand distribution resource specific

* added power model for GPU

* removed unused test setup

* removed depracated comments

* removed unused parameter

* added ID for GPU

* added GPUs and GPU performance counters (naively)

* implemented capturing of GPU statistics

* added reminders for future implementations

* renamed properties for better identification

* added capturing GPU statistics

* implemented first tests for GPUs

* unified access to performance counters

* added interface for general compute resource handling

* implemented multi resource support in simmachine

* added individual edge to VM per resource

* extended compute resource interface

* implemented multi-resource support in PSU

* implemented generic retrieval of computeresources

* implemented mult-resource suppport in vm

* made method use more resource specific

* implemented simple GPU tests

* rolled back frquency and demand use

* made naming independent of used resource

* using workloads resources instead of VMs to determine available resource

* implemented determination of used resources in workload

* removed logging statements

* implemented reading from workload

* fixed naming for host-level allocation

* fixed next deadline calculation

* fixed forwarding supply

* reduced memory footprint

* made GPU powermodel nullable

* maded Gpu powermodel configurable in topology

* implemented tests for basic gpu scheduler

* added gpu properties

* implemented weights, filter and simple cpu-gpu scheduler

* spotless apply

* spotless apply pt. 2

* fixed capitalization

* spotless kotlin run

* implemented coloumn export

* todo update

* removed code comments

* Merged PerformanceCounter classes into one &amp; removed interface

* removed GPU  specific powermodel

* Rebase master: kept both versions of TopologyFactories

* renamed CpuPowermodel to resource independent Powermodel

Moved it from Cpu package to power package

* implementated default of getResourceType &amp; removed overrides if possible

* split getResourceType into Consumer and Supplier

* added power as resource type

* reduced supply demand from arrayList to single value

* combining GPUs into one large GPU, until full multi-gpu support

* merged distribution policy enum with corresponding factory

* added comment

* post-rebase fixes

* aligned naming

* Added GPU metrics to task output

* Updates power resource type to uppercase.

Standardizes the `ResourceType.Power` enum to `ResourceType.POWER`
for consistency with other resource types and improved readability.

* Removes deprecated test assertions

Removes commented-out assertions in GPU tests.

These assertions are no longer needed and clutter the test code.

* Renames MaxMinFairnessStrategy to Policy

Renames MaxMinFairnessStrategy to MaxMinFairnessPolicy for
clarity and consistency with naming conventions. This change
affects the factory and distributor to use the updated name.

* applies spotless

* nulls GPUs as it is not used</pre>
</div>
</content>
</entry>
<entry>
<title>Unit System v2 (#243)</title>
<updated>2025-03-18T09:31:21+00:00</updated>
<author>
<name>Alessio Leonardo Tomei</name>
<email>122273875+T0mexX@users.noreply.github.com</email>
</author>
<published>2025-03-18T09:31:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=46ba81a45f7cb10c7f870bbf6946a46207ee353c'/>
<id>46ba81a45f7cb10c7f870bbf6946a46207ee353c</id>
<content type='text'>
* Separated `Time` unit into `TimeDelta` and `TimeStamp` + small fixes

Addition and subtruction between `Timestamp`s is not allowed, but any
other `Unit` operation/comparison is. `TimeDelta`s can be
added/subtructed to/form `Timestamp`s.

Deserialization of `Timestamp`:
- `Number` -&gt; interpreted as millis from Epoch
- `Instant` (string representation) -&gt; converted to Timestamp
- `Duration` (string representation) -&gt; interpreted as duration since
  Epoch (warn msg is logged)

Deserialization of `TimeDelta` is the same as `Time` was before, with the
diference that when an `Instant` is converted to an timedelta since Epoch
a warning message is logged.

* Unit System v2

- Merged `BoundedPercentage` and `UnboundedPercentage`
- Overrided all operation defined in `Unit` in all subclasses to avoid
  as much as possible value classes being boxed in bytecode. If units are used as generics
  (hence also functions defined in Unit&lt;T&gt;) they are boxed (as double would if used as generic).
- All units companions now subclass `UnitId`, and can be used as keys
  (e.g `Map&lt;UnitId, idk&gt;`), while offering `max` `min` and `zero`
  methods.
- Division between the same unit now returns `Percentage`
- Added `Iterable&lt;T&gt;.averageOfUnitOrNull(selector (T) -&gt; &lt;specific unit&gt;)`
- `ifNeg0ThenPos0()` now is optional and not invoked on every
  constructor
- Now methods in `Unit&lt;T&gt;` are all abstract, forcing override and avoid
  boxing in some cases
- Added `@UnintendedOperation` and `UnitOperationException` for methods
  that must be defined but are not intended for use (e.g. `Timestamp` +
  `Timestamp`)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Separated `Time` unit into `TimeDelta` and `TimeStamp` + small fixes

Addition and subtruction between `Timestamp`s is not allowed, but any
other `Unit` operation/comparison is. `TimeDelta`s can be
added/subtructed to/form `Timestamp`s.

Deserialization of `Timestamp`:
- `Number` -&gt; interpreted as millis from Epoch
- `Instant` (string representation) -&gt; converted to Timestamp
- `Duration` (string representation) -&gt; interpreted as duration since
  Epoch (warn msg is logged)

Deserialization of `TimeDelta` is the same as `Time` was before, with the
diference that when an `Instant` is converted to an timedelta since Epoch
a warning message is logged.

* Unit System v2

- Merged `BoundedPercentage` and `UnboundedPercentage`
- Overrided all operation defined in `Unit` in all subclasses to avoid
  as much as possible value classes being boxed in bytecode. If units are used as generics
  (hence also functions defined in Unit&lt;T&gt;) they are boxed (as double would if used as generic).
- All units companions now subclass `UnitId`, and can be used as keys
  (e.g `Map&lt;UnitId, idk&gt;`), while offering `max` `min` and `zero`
  methods.
- Division between the same unit now returns `Percentage`
- Added `Iterable&lt;T&gt;.averageOfUnitOrNull(selector (T) -&gt; &lt;specific unit&gt;)`
- `ifNeg0ThenPos0()` now is optional and not invoked on every
  constructor
- Now methods in `Unit&lt;T&gt;` are all abstract, forcing override and avoid
  boxing in some cases
- Added `@UnintendedOperation` and `UnitOperationException` for methods
  that must be defined but are not intended for use (e.g. `Timestamp` +
  `Timestamp`)</pre>
</div>
</content>
</entry>
<entry>
<title>Refactored exporters. Allows output column selection in scenario (#241) (#241)</title>
<updated>2024-08-22T14:45:22+00:00</updated>
<author>
<name>Alessio Leonardo Tomei</name>
<email>122273875+T0mexX@users.noreply.github.com</email>
</author>
<published>2024-08-22T14:45:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=f9ffdfb29a3f08ac11e739494e754c81ef4f5157'/>
<id>f9ffdfb29a3f08ac11e739494e754c81ef4f5157</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added Unit of measurament system with new deserialization (#242)</title>
<updated>2024-08-22T12:40:57+00:00</updated>
<author>
<name>Alessio Leonardo Tomei</name>
<email>122273875+T0mexX@users.noreply.github.com</email>
</author>
<published>2024-08-22T12:40:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=4f98fb2bf8204f6af52cd6eeb3313d21c6ca95bc'/>
<id>4f98fb2bf8204f6af52cd6eeb3313d21c6ca95bc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Updated package versions, updated web server tests. (#207)</title>
<updated>2024-03-05T12:23:57+00:00</updated>
<author>
<name>Dante Niewenhuis</name>
<email>d.niewenhuis@hotmail.com</email>
</author>
<published>2024-03-05T12:23:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=5864cbcbfe2eb8c36ca05c3a39c7e5916aeecaec'/>
<id>5864cbcbfe2eb8c36ca05c3a39c7e5916aeecaec</id>
<content type='text'>
* Updated all package versions including kotlin. Updated all web-server tests to run.

* Changed the java version of the tests. OpenDC now only supports java 19.

* small update

* test update

* new update

* updated docker version to 19

* updated docker version to 19</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Updated all package versions including kotlin. Updated all web-server tests to run.

* Changed the java version of the tests. OpenDC now only supports java 19.

* small update

* test update

* new update

* updated docker version to 19

* updated docker version to 19</pre>
</div>
</content>
</entry>
</feed>
