schedulers  1.0.0
src/SandersSpeck.cpp File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <string>
#include <iostream>
#include <pelib/SandersSpeck.hpp>
#include <pelib/AmplSolver.hpp>
#include <pelib/Schedule.hpp>
#include <pelib/Scalar.hpp>
#include <pelib/Vector.hpp>
#include <pelib/Matrix.hpp>
#include <pelib/Set.hpp>
#include <pelib/Task.hpp>
#include <pelib/Link.hpp>
#include <pelib/Taskgraph.hpp>
#include <pelib/Platform.hpp>
#include <pelib/CastException.hpp>
#include <pelib/ParseException.hpp>
#include <pelib/AmplOutput.hpp>
#include <pelib/PelibException.hpp>
Include dependency graph for SandersSpeck.cpp:

Go to the source code of this file.

Classes

struct  task
struct  taskset
struct  taskparams
struct  schedule
struct  etable

Defines

#define debug(var)   cout << "[" << __FILE__ << ":" << __FUNCTION__ << ":" << __LINE__ << "] " << #var << " = \"" << (var) << "\"" << endl;
#define LEN   100
#define TAUTHRESHOLD   0.0001
#define MINFACT   0.0001
#define MAX_DOUBLE   pow(2.0,50.0)
#define THRESHOLD   0.000001
#define printf_d(expr)   fprintf(stderr, "[%s:%s:%d] %s = %d\n", __FILE__, __FUNCTION__, __LINE__, #expr, (int)expr);
#define printf_lf(expr)   fprintf(stderr, "[%s:%s:%d] %s = %lf\n", __FILE__, __FUNCTION__, __LINE__, #expr, (double)expr);

Typedefs

typedef struct task Task
typedef struct taskset Taskset
typedef struct taskparams Taskparams
typedef struct schedule Schedule
typedef struct etable ETable

Functions

double taskload (Task *t)
double taskhtab (Task *t, int p)
void inittaskset (Taskset *ts, int n, char *name, int maxcores)
double g (int i)
double efficiency (int i, int maxwidth)
void computehtab (Task *t, int maxcores)
void addtasktotaskset (Taskset *ts, int id, double work, int maxwidth, char *name)
void deinittaskset (Taskset *ts)
 deinit a taskset
void copytaskset (Taskset *trg, Taskset *src, char *name)
void readinput (Taskset *ts, const pelib::Taskgraph &tg, const pelib::Platform &arch)
char * tasksetname (Taskset *ts)
int tssize (Taskset *ts)
Taskgettask (Taskset *ts, int i)
 return pointer to i-th task of a taskset
void printtask (Task *t)
void printtaskset (Taskset *ts)
double etau (Task *t, int p, double tau, double M)
void initetable (ETable *et, Taskset *ts, int cores)
void deinitetable (ETable *et)
void computeetable (ETable *et, Taskset *ts, int cores, double M)
void printetable (ETable *et)
void computeinitialc (Taskset *ts, ETable *et, double *clp, double *cup, double M)
double invertefunction (Taskset *ts, ETable *et, int i, double c, double cl, double cu, int *bendpointsleftptr, double M)
int checktoomany (Taskset *ts, ETable *et, double c, double cl, double cu, int *bendpointsleftptr, double M)
double computetaskenergy (Task *t, int pistar, double taui, double deadline, double lalpha)
double computeoptc (Taskset *ts, ETable *et, int p, double M, double minFreq)
const pelib::Schedulepelib_schedule (const pelib::Taskgraph &tg, const pelib::Platform &pt, size_t argc, char **argv, std::map< const string, double > &statistics)
string pelib_description (size_t argc, char **argv)
void pelib_delete (pelib::Schedule *sched)

Variables

double alpha
const long long int nsec_in_sec = 1000000000

Define Documentation

#define debug (   var)    cout << "[" << __FILE__ << ":" << __FUNCTION__ << ":" << __LINE__ << "] " << #var << " = \"" << (var) << "\"" << endl;

Definition at line 34 of file SandersSpeck.cpp.

#define LEN   100

Definition at line 36 of file SandersSpeck.cpp.

#define MAX_DOUBLE   pow(2.0,50.0)

Definition at line 42 of file SandersSpeck.cpp.

#define MINFACT   0.0001

Definition at line 39 of file SandersSpeck.cpp.

#define printf_d (   expr)    fprintf(stderr, "[%s:%s:%d] %s = %d\n", __FILE__, __FUNCTION__, __LINE__, #expr, (int)expr);

Definition at line 250 of file SandersSpeck.cpp.

#define printf_lf (   expr)    fprintf(stderr, "[%s:%s:%d] %s = %lf\n", __FILE__, __FUNCTION__, __LINE__, #expr, (double)expr);

Definition at line 251 of file SandersSpeck.cpp.

#define TAUTHRESHOLD   0.0001

Definition at line 38 of file SandersSpeck.cpp.

#define THRESHOLD   0.000001

Definition at line 45 of file SandersSpeck.cpp.


Typedef Documentation

typedef struct etable ETable
typedef struct schedule Schedule
typedef struct task Task
typedef struct taskparams Taskparams
typedef struct taskset Taskset

Function Documentation

void addtasktotaskset ( Taskset ts,
int  id,
double  work,
int  maxwidth,
char *  name 
)

Definition at line 145 of file SandersSpeck.cpp.

int checktoomany ( Taskset ts,
ETable et,
double  c,
double  cl,
double  cu,
int *  bendpointsleftptr,
double  M 
)

Definition at line 376 of file SandersSpeck.cpp.

void computeetable ( ETable et,
Taskset ts,
int  cores,
double  M 
)

Definition at line 282 of file SandersSpeck.cpp.

void computehtab ( Task t,
int  maxcores 
)

Definition at line 127 of file SandersSpeck.cpp.

void computeinitialc ( Taskset ts,
ETable et,
double *  clp,
double *  cup,
double  M 
)

Definition at line 313 of file SandersSpeck.cpp.

double computeoptc ( Taskset ts,
ETable et,
int  p,
double  M,
double  minFreq 
)

Definition at line 436 of file SandersSpeck.cpp.

double computetaskenergy ( Task t,
int  pistar,
double  taui,
double  deadline,
double  lalpha 
)

Definition at line 394 of file SandersSpeck.cpp.

void copytaskset ( Taskset trg,
Taskset src,
char *  name 
)

Definition at line 167 of file SandersSpeck.cpp.

void deinitetable ( ETable et)

Definition at line 275 of file SandersSpeck.cpp.

void deinittaskset ( Taskset ts)

deinit a taskset

Definition at line 159 of file SandersSpeck.cpp.

double efficiency ( int  i,
int  maxwidth 
)

Definition at line 118 of file SandersSpeck.cpp.

double etau ( Task t,
int  p,
double  tau,
double  M 
)

Definition at line 252 of file SandersSpeck.cpp.

double g ( int  i)

Definition at line 114 of file SandersSpeck.cpp.

Task* gettask ( Taskset ts,
int  i 
)

return pointer to i-th task of a taskset

Definition at line 228 of file SandersSpeck.cpp.

void initetable ( ETable et,
Taskset ts,
int  cores 
)

Definition at line 267 of file SandersSpeck.cpp.

void inittaskset ( Taskset ts,
int  n,
char *  name,
int  maxcores 
)

Definition at line 105 of file SandersSpeck.cpp.

double invertefunction ( Taskset ts,
ETable et,
int  i,
double  c,
double  cl,
double  cu,
int *  bendpointsleftptr,
double  M 
)

Definition at line 333 of file SandersSpeck.cpp.

void pelib_delete ( pelib::Schedule sched)

Definition at line 704 of file SandersSpeck.cpp.

string pelib_description ( size_t  argc,
char **  argv 
)

Definition at line 694 of file SandersSpeck.cpp.

const pelib::Schedule* pelib_schedule ( const pelib::Taskgraph &  tg,
const pelib::Platform &  pt,
size_t  argc,
char **  argv,
std::map< const string, double > &  statistics 
)

Definition at line 684 of file SandersSpeck.cpp.

void printetable ( ETable et)

Definition at line 300 of file SandersSpeck.cpp.

void printtask ( Task t)

Definition at line 232 of file SandersSpeck.cpp.

void printtaskset ( Taskset ts)

Definition at line 242 of file SandersSpeck.cpp.

void readinput ( Taskset ts,
const pelib::Taskgraph &  tg,
const pelib::Platform &  arch 
)

Definition at line 201 of file SandersSpeck.cpp.

double taskhtab ( Task t,
int  p 
)

Definition at line 100 of file SandersSpeck.cpp.

double taskload ( Task t)

Definition at line 95 of file SandersSpeck.cpp.

char* tasksetname ( Taskset ts)

Definition at line 220 of file SandersSpeck.cpp.

int tssize ( Taskset ts)

Definition at line 224 of file SandersSpeck.cpp.


Variable Documentation

double alpha

Definition at line 91 of file SandersSpeck.cpp.

const long long int nsec_in_sec = 1000000000

Definition at line 498 of file SandersSpeck.cpp.