Métricas en teoría:
- Lapso. Span es la complejidad temporal de un algoritmo paralelo en procesadores infinitos. ¿Qué tan bien se puede paralelizar el algoritmo? Distantemente relacionado está la aceleración teórica calculada por la ley de Amdahl, la aceleración máxima alcanzable en procesadores [math] p [/ math]. Ambos se refieren a la cantidad de cómputo secuencial intrínseco.
- Relación competitiva La relación competitiva de un algoritmo en línea es la peor relación entre el costo del algoritmo en línea y el mejor algoritmo fuera de línea posible para resolver el mismo problema. Cuanto menor sea la relación, más óptimo será su algoritmo.
- Aleatoriedad complejidad. Al analizar un algoritmo probabilístico de Monte Carlo, le interesaría cómo la aleatoriedad se escala como un recurso a medida que aumenta la cantidad de datos. O, cuánto tiempo de ejecución aumenta a medida que aumenta la tasa de precisión para los algoritmos de Las Vegas.
- Rendimiento de aprendizaje. En los algoritmos de aprendizaje automático, le interesaría qué tan bien realiza la tarea que defina (precisión, área bajo la curva ROC, precisión, recuperación …).
- Variación de tiempo de ejecución. Para los algoritmos de Las Vegas, puede interesarle con qué frecuencia los tiempos de ejecución alcanzan la complejidad de tiempo esperada. O, si está construyendo un sistema operativo en tiempo real, desea saber exactamente cuánto tiempo se ejecuta su algoritmo, lo que puede descartar arreglos / vectores rápidos o dinámicos (que tienen un rendimiento amortizado).
Métricas en la práctica:
- Aceleración de la paralelización. Si tiene el hardware paralelo, úselo para su ventaja. ¿Cuánto más rápido va en comparación con un algoritmo secuencial? ¿Una implementación paralela existente?
- Localidad y uso de energía. ¿El algoritmo necesita buscar a menudo desde el disco? De memoria no almacenada en caché? Estas operaciones tardan mucho más que acceder a los datos en su caché y consumen más energía.
- Latencia y rendimiento. Puede considerar las compensaciones entre la latencia, la rapidez con que se puede producir una respuesta a los datos, frente al rendimiento, la cantidad de datos que se pueden procesar con el tiempo.
- Complejidad de implementación. Si su algoritmo mejora una solución de [matemática] O (n ^ 2) [/ matemática] a [matemática] O (n \ log n) [/ matemática], pero realmente no ayuda mucho y toma 3 días más para implementar , podría considerar ahorrar tiempo y dinero para hacer otras cosas.
- ¿Qué temas principales debería discutir en mi presentación de 50 minutos sobre aprendizaje automático y robótica?
- ¿Qué es el mapa de bits? ¿Dónde lo usamos?
- ¿Cuál es un ejemplo de un árbol binario roscado?
- ¿Ha habido algún trabajo teórico que delinee qué clase de algoritmos pueden y no pueden mapearse para mapear / reducir?
- ¿Cuáles son las aplicaciones de los diferentes métodos de búsqueda en la estructura de datos?