@startuml
frame cpu {
component cpu1
component cpu2
component cpum
}
frame thread {
node thread1
node thread2
node threadn
}
frame task {
node task1
node task2
node taskn
interface database
interface rpc
}
cpu1 --> thread
cpu2 --> thread
cpum --> thread
thread1 --> task1
thread2 --> task2
threadn --> taskn
task1 --> database
task1 --> rpc
@enduml