64 lines
1.5 KiB
Ruby
64 lines
1.5 KiB
Ruby
require "fileutils"
|
|
require "rubella"
|
|
require "rubella/input/base"
|
|
require "rubella/output/image"
|
|
require "rubella/output/ascii"
|
|
require "rubella/weighting/per_value"
|
|
require "rubella/weighting/per_overall_load"
|
|
require "rubella/weighting/exponential"
|
|
|
|
# Number of cores
|
|
cores = 8
|
|
# Number of buckets
|
|
buckets = 10
|
|
# Number of columns
|
|
col = 25
|
|
# Field size
|
|
size = 50
|
|
# Time intervall in sec.
|
|
time = 1
|
|
|
|
# Prepare classes
|
|
#weighting = Rubella::Weighting::PerValue.new buckets
|
|
weighting = Rubella::Weighting::PerOverallLoad.new buckets
|
|
#weighting = Rubella::Weighting::Exponential.new buckets
|
|
storage = Rubella::Storage.new Array.new(1, Array.new(cores, 0)), col
|
|
|
|
while true
|
|
dataset = Array.new()
|
|
Random.new_seed
|
|
# Generate new dataset
|
|
i = 0
|
|
dataset << Array.new(cores) do
|
|
core_load = 0
|
|
case i
|
|
when 0
|
|
core_load = 100
|
|
when 1..2
|
|
core_load = rand(80..100)
|
|
when 3..5
|
|
core_load = rand(50..80)
|
|
when 7
|
|
core_load = rand(0..15)
|
|
else
|
|
# Generate a value between 0 and 100
|
|
core_load = rand(100)
|
|
end
|
|
i = i + 1
|
|
core_load
|
|
end
|
|
#puts dataset.inspect
|
|
|
|
# Push new dataset through input && Weight data && Add new data to storage
|
|
new_storage = weighting.parse(Rubella::Input::Base.new(dataset))
|
|
#puts new_storage.data.inspect
|
|
storage = storage.add new_storage
|
|
|
|
# Dump new image
|
|
Rubella::Output::Image.new(storage, size).render.write("cpu_load_new.png")
|
|
FileUtils.cp "cpu_load_new.png", "cpu_load.png"
|
|
#puts Rubella::Output::ASCII.new(storage, size).render
|
|
|
|
sleep(time)
|
|
end
|