La información en este sitio web corresponde al curso académico 19/20. La información del curso 20/21 está accesible a través del correspondiente curso de moodle de la Universidad de Zaragoza
Según los criterios de la asignatura, es necesario obtener una calificación mayor o igual que 4 para superar esta actividad. En caso contrario es necesario presentarse a la correspondiente prueba alternativa (véase los criterios de evaluación de la guía docente).
Material para el desarrollo de las sesiones en el laboratorio (curso 2019-2020):
tMax
. Para tiempos pequeños, la librería ctime
no da suficiente precisión, por lo que es preferible usar std::chrono
. Un ejemplo de código, midiendo el tiempo de ejecución en nanosegundos, sería#include <chrono> ... chrono::steady_clock::time_point start = chrono::steady_clock::now(); ...ejecución del código cuyo tiempo se quiere medir chrono::steady_clock::time_point end = chrono::steady_clock::now(); chrono::nanoseconds t = chrono::duration_cast<chrono::nanoseconds>(end - start); cout << "Tiempo de ejecución (nsegs): " << t.count() << endl;
idMasLento
: en la versión inicial, este estaba declarado como std::thread::id& idMasLento
. Sin embargo, es posible que C++ dé error debido a que es destruído en el momento de finalización del thread. Con el objeto de pasar el id del thread que terminó el último, vamos a guardar una copia en el nuevo parámetro, que es de tipo string
. Para ello, antes de terminar el thread vamos a guardarlo como un string como sigue:#include <sstream> ... void prod_Mat_Vect(const Mat A, const Vect x, const int f1, const int f2, Vect& pMV,std::chrono::nanoseconds& tMax, std::string& idMasLento, std::atomic_flag& tas) { ... stringstream ss; //mirar doc. en C++ sobre los "stringstream" ... ss << this_thread::get_id(); //sobre un "stringstream" se puede usar el operador "<<" idMasLento = ss.str(); //copiamos el string que hay en "ss" en el parámetro por referencia ... }
const string mensajes[] = { "a leopard never changes its spots", "a friend in need is a friend indeed", "kill two birds with one stone", "every cloud has a silver lining", "things often happen when you least expect them to", "who laughs last laughs longest", "a cat in gloves catches no mice", "actions speak louder than words" };
—-
Sobre la codificación