Академический Документы
Профессиональный Документы
Культура Документы
I. OBJETIVOS
Mtricas de Rendimiento
MIPS
FLOPS
Para que se pueda usar el FLOPS como medida de rendimiento de punto flotante una
referencia estndar debe ser establecida para todas las computadoras de inters. Uno de
ellos es el estndar LINPACK.
Los FLOPS por s solos no son un muy til estndar para computadoras modernas. Existen
muchos otros factores de rendimiento tales como I/O (Entrada/Salida), comunicacin
inter procesador, coherencia del cache y jerarqua de memoria. Esto significa que las
computadoras en general son slo capaces de una fraccin del pico terico en FLOPS,
obtenido adicionando el pico terico en FLOPS de cada uno de los componentes del
sistema.
Para aplicaciones ordinarias (no cientficas) las operaciones sobre enteros (medidos en
MIPS) son mucho ms comunes. De lo anterior se deduce que medir el rendimiento en
FLOPS no predice con precisin qu tan rpido un procesador realizar cualquier tarea. Sin
embargo, para muchas aplicaciones cientficas, como el anlisis de datos, el rendimiento
en FLOPS es una medida efectiva.
Tiempo de ejecucin en Algoritmos
Medir de forma precisa este tiempo no es una tarea trivial, y los resultados pueden variar
sensiblemente de un ordenador a otro. La cantidad de factores que pueden influir en el
tiempo de ejecucin es muy larga:
algoritmo usado
sistema operativo
velocidad del procesador, nmero de procesadores y conjunto de
instrucciones que entiende
cantidad de memoria RAM, y cach, y velocidad de cada una
coprocesador matemtico, GPU
Incluso en la misma mquina, el mismo algoritmo tarda algunas veces mucho ms tiempo
en dar el resultado que otras, debido a factores como el tiempo que consumen las otras
aplicaciones que se estn ejecutando, o si hay suficiente memoria RAM en el momento de
ejecutar el programa.
IV. PROCEDIMIENTO
1. Para medir el tiempo de ejecucin de un algoritmo, se utilizara la siguiente
estructura en lenguaje C++
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>
int main(int argc, char *argv[])
{
float x,y,s,r,p,d;
clock_t start=clock();
gotoxy(15,2);cout<<"Operaciones de numeros";
gotoxy(10,5);cout<<"Ingrese Numero x:"; cin>>x;
gotoxy(10,6);cout<<"Ingrese Numero y:"; cin>>y;
s=x+y;
r=x-y;
p=x*y;
d=x/y;
gotoxy(10,8);cout<<"*El resultado es:";
gotoxy(28,10);cout<<x<<"+"<<y<<"="<<s;
gotoxy(28,11);cout<<x<<"-"<<y<<"="<<r;
gotoxy(28,12);cout<<x<<"*"<<y<<"="<<p;
gotoxy(28,13);cout<<x<<"/"<<y<<"="<<d;
gotoxy(38,16);printf("....Tiempo transcurrido: %f",((double)clock() -
start)/CLOCKS_PER_SEC);
getch();
}
B 4.274 ms
V. ANALISIS
Informe Final:
Para ambos programas se tom como 1er numero: 1 y como 2do numero: 200.
iv. En este caso, podemos decir que el rendimiento de Borland C++, es ms veloz que el
de Python, ya que su rendimiento es de 0.529.
3. Realizar un programa que pueda medir uso de la memoria en tiempo de
ejecucin.
Programa en C++:
#include <iostream>
#include <map>
#include <cmath>
using namespace std;
int main()
{ map <float , float> dict;
for (int i = 0; i < 5000000; i++)
{dict[i] = log(i);}
return 0;
}
a. Tiempo de usuario: Es el tiempo que la CPU utiliza para ejecutar el programa del
usuario. No se tiene en cuenta el tiempo de espera debido a la E/S o el tiempo
utilizado para ejecutar otros programas
b. Tiempo de sistema: Es el tiempo que el sistema emplea para realizar su gestin
interna.
c. Uso de CPU : Es el tiempo que tarda en ejecutarse un programa, sin tener en
cuenta el tiempo de espera debido a la E/S o el tiempo utilizado para ejecutar
otros programas.
d. Tiempo real: Es el tiempo necesario para completar una tarea, incluyendo los
accesos al disco, a la memoria, las actividades de E/S y los gastos del S.O. Es el
tiempo que percibe el usuario
e. Uso de RAM: La memoria consumida en tiempo de ejecucin.
Arquitectura: x86_64
VII. OBSERVACIONES