diff --git a/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs b/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs
index 8abf5cc..a2107e8 100644
--- a/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs
+++ b/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs
@@ -51,7 +51,8 @@
 // The MpactCheriotCPU class. This class derives from BaseCPU, which implements
 // a CPU in ReNode. It is the interface between ReNode and the mpact_cheriot
 // simulator library.
-public class MpactCheriotCPU : MpactBaseCPU, ICpuSupportingGdb {
+public class MpactCheriotCPU : MpactBaseCPU, ICluster<MpactCheriotCPU>,
+                               ICpuSupportingGdb {
 
     public MpactCheriotCPU(uint id, UInt64 memoryBase, UInt64 memorySize,
                            UInt64 revocationMemoryBase, string cpuType,
@@ -60,6 +61,7 @@
         : base(id, memoryBase, memorySize, cpuType, machine, endianness,
                bitness) {
         revocationMemBase = revocationMemoryBase;
+	Clustered = new MpactCheriotCPU[] { this };
     }
 
     ~MpactCheriotCPU() {
@@ -133,6 +135,10 @@
     public void RemoveHooksAt(ulong addr) { /* empty */ }
     public void RemoveAllHooks() { /* empty */ }
 
+    // ICluster methods.
+    public new IEnumerable<ICluster<MpactCheriotCPU>> Clusters {get; } = new List<ICluster<MpactCheriotCPU>>(0);
+    public new IEnumerable<MpactCheriotCPU> Clustered {get; }
+
     // ICPUSupportingGdb methods.
 
     public void EnterSingleStepModeSafely(HaltArguments args) {
diff --git a/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs b/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs
index ca93625..12fa0cd 100644
--- a/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs
+++ b/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs
@@ -45,7 +45,8 @@
 // The MpactRiscvCPU class. This class derives from BaseCPU, which implements
 // a CPU in ReNode. It is the interface between ReNode and the mpact_riscv32/64
 // simulator libraries.
-public class MpactRiscVCPU : MpactBaseCPU, ICpuSupportingGdb {
+public class MpactRiscVCPU : MpactBaseCPU, ICluster<MpactRiscVCPU>,
+                             ICpuSupportingGdb {
 
     public MpactRiscVCPU(uint id, UInt64 memoryBase, UInt64 memorySize,
                          string cpuType, IMachine machine,
@@ -53,6 +54,7 @@
                          CpuBitness bitness = CpuBitness.Bits32)
         : base(id, memoryBase, memorySize, cpuType, machine, endianness,
                bitness) {
+        Clustered = new MpactRiscVCPU[] { this };
     }
 
     ~MpactRiscVCPU() {
@@ -133,6 +135,10 @@
     public void RemoveHooksAt(ulong addr) { /* empty */ }
     public void RemoveAllHooks() { /* empty */ }
 
+    // ICluster methods.
+    public new IEnumerable<ICluster<MpactRiscVCPU>> Clusters {get; } = new List<ICluster<MpactRiscVCPU>>(0);
+    public new IEnumerable<MpactRiscVCPU> Clustered {get; }
+
     // ICPUSupportingGdb methods.
 
     public void EnterSingleStepModeSafely(HaltArguments args) {
