Opened 13 years ago
Closed 13 years ago
#1510 closed task (fixed)
benchmark para TOL
Reported by: | apalonso | Owned by: | Humberto Carralero |
---|---|---|---|
Priority: | normal | Milestone: | Mantainance |
Component: | User config | Version: | 3.1 |
Severity: | trivial | Keywords: | |
Cc: |
Description
Necesitamos un programa bien simple que ejecute tareas intensivas de cálculo para evaluar el rendimiento de los equipos con los procesos de TOL.
Pueden ser una o varias tareas, es importante que al final salga un informe de los tiempos de ejecución.
Change History (2)
comment:1 Changed 13 years ago by
Owner: | changed from Humberto Carralero to Humberto Carralero |
---|---|
Status: | new → assigned |
comment:2 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
Se ha definido un mecanismo simple para ejecutar una función que contiene un código TOL y medir el tiempo de ejecución.
El código tiene 3 elementos:
Función benchmark: Set benchmark(Code fun, Real trace) { ...}
Esta función toma dos parámetros:
fun que es una función que devuelve un Real y toma como parámetro un Real (trace) cuyo valor será 1 si se quiere una traza de la ejecución o 0 en caso contrario.
trace que es una valor que se utiliza para indicar si se quiere una traza de la ejecución, 0 indica que no se desea la traza y 1 que se desea la traza.
Esta función (benchmark) retorna un Set con tres elementos, tini que es el tiempo inicial, tfin que es el tiempo de finalización y tdur que es el tiempo de duración de la ejecución. Cuando se pide la traza (trace==1) se imprimen tres mensajes con los tres valores ya indicados en el momento en que se obtienen.
Función test_sim: Real test_sim(Real trace) { ... }
Esta función es un ejemplo del tipo de función que se debe emplear como 1er argumento a la función benchmark; este ejemplo carga un fichero OZA que contiene un objeto MMS::@Forecast, construye un escenario de simulación y la ejecuta. Si se requiere probar otro código sólo habría que hacer una función similar a ésta en cuanto al prototipo poniendo dentro el código que se quiere probar.
Llamada para ejecutar el benchmark: Set res= benchmark(test_sim, 1);
Esta llamada ejecuta la función de prueba, imprime la traza y retorna un Set con los tres tiempos ya descritos.
CÓDIGO TOL:
Set benchmark(Code fun, Real trace) {
};
#Require MmsInBws;
Real test_sim(Real trace)
{
};
Set benchmark(test_sim, 1);