¿Cómo afecta el subprocesamiento múltiple al rendimiento de diferentes algoritmos de clasificación?

Primero eliminaremos los factores que pueden causar problemas:

  1. Implementación: si el código no está optimizado y está mal escrito, tendrá un impacto negativo en todo el proyecto. Si intenta acceder al mismo conjunto de datos en la memoria (digamos el mismo índice de matriz) obtendrá conflictos que rompen las cosas.
  2. El entorno utilizado para ejecutar puntos de referencia: si el sistema operativo o el sistema ya está utilizando y asignando trabajo a todos los núcleos, el efecto medido puede no ser realmente representativo.
  3. El lenguaje utilizado para implementar el algoritmo: Java y C #, al ser los lenguajes GCed podría tener un impacto negativo en la implementación general en comparación con un sistema en el que administra las cosas usted mismo. Esto dificulta la implementación, pero vale la pena para grandes conjuntos de datos.
  4. Los datos que se están ordenando deben merecer la sobrecarga que crea el subproceso, de modo que la sobrecarga se convierta en un factor insignificante.
  5. Si tiene un conjunto de datos grande, tenga cuidado con sus hilos si usa la recursividad: podría sobrecargar el sistema si su conjunto de datos es tan grande que crea un hilo por rama de recursión. Intente unir hilos cuando se crean a partir de llamadas recursivas.

Casos especiales y detalles

  1. la ordenación de cubos depende de otro algoritmo, por lo que uno debe optimizarse primero.
  2. la forma en que configura sus datos ya limitará o acelerará la ordenación rápida .

Los efectos

Si perfecciona los factores mencionados anteriormente y configura las cosas correctamente:

  • multi-threading aumentará el rendimiento de un algoritmo.
  • ejecutar el algoritmo en dos subprocesos aumenta el rendimiento hasta dos veces el tiempo de ejecución original, lo que significa que lleva la mitad del tiempo.
  • correr en cuatro hilos reduce el tiempo y aumenta la velocidad entre 2.5 y 3 veces.

Desempolva, agrega carne y paquete.