Skip to content
Snippets Groups Projects

Add poisson-open-loop workload in client.cpp

Merged Ghost User requested to merge (removed):wip_poisson_open_loop_client into master
1 unresolved thread
3 files
+ 47
16
Compare changes
  • Side-by-side
  • Inline
Files
3
#ifndef _CLOCKWORK_WORKLOAD_EXAMPLE_H_
#ifndef _CLOCKWORK_WORKLOAD_EXAMPLE_H_
#define _CLOCKWORK_WORKLOAD_EXAMPLE_H_
#define _CLOCKWORK_WORKLOAD_EXAMPLE_H_
 
#include "clockwork/util.h"
#include "clockwork/workload/workload.h"
#include "clockwork/workload/workload.h"
#include "clockwork/workload/azure.h"
#include "clockwork/workload/azure.h"
#include <cstdlib>
#include <cstdlib>
@@ -81,8 +82,6 @@ Engine* simple_slo_factor(clockwork::Client* client) {
@@ -81,8 +82,6 @@ Engine* simple_slo_factor(clockwork::Client* client) {
Engine* simple_parametric(clockwork::Client* client, unsigned num_copies,
Engine* simple_parametric(clockwork::Client* client, unsigned num_copies,
unsigned concurrency, unsigned num_requests) {
unsigned concurrency, unsigned num_requests) {
std::cout << "Simple Parametric Engine: " << num_copies << " "
<< concurrency << " " << num_requests << std::endl;
Engine* engine = new Engine();
Engine* engine = new Engine();
std::string modelpath = util::get_clockwork_modelzoo()["resnet50_v2"];
std::string modelpath = util::get_clockwork_modelzoo()["resnet50_v2"];
@@ -101,6 +100,33 @@ Engine* simple_parametric(clockwork::Client* client, unsigned num_copies,
@@ -101,6 +100,33 @@ Engine* simple_parametric(clockwork::Client* client, unsigned num_copies,
return engine;
return engine;
}
}
 
Engine* poisson_open_loop(clockwork::Client* client, unsigned num_models,
 
double rate) {
 
Engine* engine = new Engine();
 
 
std::string model_name = "resnet50_v2";
 
std::string modelpath = util::get_clockwork_modelzoo()[model_name];
 
 
std::cout << "Loading " << num_models << " " << model_name
 
<< " models" << std::endl;
 
std::cout << "Cumulative request rate across models: " << rate
 
<< " requests/seconds" << std::endl;
 
auto models = client->load_remote_models(modelpath, num_models);
 
 
std::cout << "Adding a PoissonOpenLoop Workload (" << (rate/num_models)
 
<< " requests/second) for each model" << std::endl;
 
for (unsigned i = 0; i < models.size(); i++) {
 
engine->AddWorkload(new PoissonOpenLoop(
 
i, // client id
 
models[i], // model
 
i, // rng seed
 
rate/num_models // requests/second
 
));
 
}
 
 
return engine;
 
}
 
Engine* example(clockwork::Client* client) {
Engine* example(clockwork::Client* client) {
Engine* engine = new Engine();
Engine* engine = new Engine();
Loading