15Aug

¿Cómo se calcula la velocidad del procesador en procesadores multi-core?

click fraud protection

El advenimiento de los procesadores económicos multi-core de grado de consumidor plantea la pregunta para muchos usuarios: ¿cómo se calcula efectivamente la velocidad real de un sistema multi-core?¿Es un sistema 3Ghz de 4 núcleos realmente 12Ghz? Sigue leyendo mientras investigamos.

Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de comandos de comunidad de sitios web de Q & A.

El lector

SuperUser pregunta NReilingh era curioso cómo se calcula realmente la velocidad del procesador para un sistema multinúcleo:

¿Es correcto decir, por ejemplo, que un procesador con cuatro núcleos funcionando cada uno a 3GHz es de hecho un procesador en ejecución?a 12 GHz?

Una vez me metí en un argumento de "Mac vs. PC"( que por cierto NO es el enfoque de este tema. .. que estaba en la secundaria) con un conocido que insistía en que los Mac solo se promocionaban como máquinas de 1Ghz porque erandos procesadores G4 cada uno corriendo a 500MHz.

instagram viewer

En ese momento sabía que esto era una porquería, por razones que creo que son evidentes para la mayoría de la gente, pero acabo de ver un comentario en este sitio web con el siguiente "6 núcleos x 0.2GHz = 1.2Ghz" y eso me hizo pensar nuevamentesi hay una respuesta real a esto.

Entonces, esta es una pregunta técnica filosófica / profunda más o menos acerca de la semántica del cálculo de la velocidad del reloj. Veo dos posibilidades:

  1. Cada núcleo está de hecho haciendo x cálculos por segundo, por lo tanto, el número total de cálculos es x( núcleos).
  2. La velocidad del reloj es más bien un recuento del número de ciclos que atraviesa el procesador en el espacio de un segundo, de modo que mientras todos los núcleos se ejecuten a la misma velocidad, la velocidad de cada ciclo de reloj se mantiene igual sin importar cuántos núcleosexiste. En otras palabras, Hz =( core1Hz + core2Hz +. ..) / núcleos.

Entonces, ¿cuál es la forma adecuada de indicar la velocidad total del reloj y, lo que es más importante, incluso es posible usar la nomenclatura de velocidad de un solo núcleo en un sistema multinúcleo?

La respuesta

SuperUser contribuidores Mokubai ayuda a aclarar las cosas.Él escribe:

La razón principal por la que un procesador quad-core de 3GHz nunca es tan rápido como un núcleo único de 12GHz tiene que ver con cómo funciona la tarea que se ejecuta en ese procesador, es decir, de un solo subproceso o de varios subprocesos. La Ley de Amdahl es importante cuando se consideran los tipos de tareas que se están ejecutando.

Si tiene una tarea que es intrínsecamente lineal y debe hacerse paso a paso, como( un programa extremadamente simple)

10: a = a + 1 20: ir a 10

Entonces la tarea depende en gran medida del resultadodel pase anterior y no puede ejecutar copias múltiples de sí mismo sin corromper el valor de 'a' ya que cada copia obtendría el valor de 'a' en diferentes momentos y lo escribiría de manera diferente. Esto restringe la tarea a un único hilo y, por lo tanto, la tarea solo puede ejecutarse en un solo núcleo en cualquier momento dado, si se ejecutara en múltiples núcleos, entonces la corrupción de sincronización ocurriría. Esto lo limita a 1/2 de la potencia de la CPU de un sistema de doble núcleo, o 1/4 en un sistema de cuatro núcleos.

Ahora tome una tarea como:

10: a = a + 1 20: b = b + 1 30: c = c + 1 40: d = d + 1 50: goto 10

Todas estas líneas son independientes y podríandividirse en 4 programas separados como el primero y ejecutar al mismo tiempo, cada uno capaz de hacer un uso efectivo de la potencia total de uno de los núcleos sin ningún problema de sincronización, aquí es donde la Ley de Amdahl entra en juego.

Así que si tienes una aplicación con un solo hilo haciendo cálculos de fuerza bruta, el único procesador de 12GHz ganaría sin problemas, si de alguna manera puedes dividir la tarea en partes separadas y multihilo, entonces los 4 núcleos podrían acercarse, pero no llegar del todo, el mismo rendimiento, según la Ley de Amdahl.

Lo principal que le brinda un sistema de CPU múltiple es la capacidad de respuesta. En una máquina de un solo núcleo que está trabajando duro, el sistema puede parecer lento ya que la mayoría del tiempo podría ser utilizado por una tarea y las otras tareas solo se ejecutan en ráfagas cortas entre la tarea más grande, lo que resulta en un sistema que parece lento o juddery. En un sistema multinúcleo, la tarea pesada obtiene un núcleo y todas las demás tareas se ejecutan en los otros núcleos, haciendo su trabajo de manera rápida y eficiente.

El argumento de "6 núcleos x 0.2GHz = 1.2Ghz" es basura en todas las situaciones, excepto cuando las tareas son perfectamente paralelas e independientes. Hay un buen número de tareas que son altamente paralelas, pero aún requieren alguna forma de sincronización. Handbrake es un transcodificador de video que es muy bueno en el uso de todas las CPU disponibles, pero requiere un proceso central para mantener los otros hilos llenos de datos y recopilar los datos con los que están hechos.

  1. Cada núcleo está de hecho haciendo x cálculos por segundo, por lo tanto, el número total de cálculos es x( núcleos).

Cada núcleo es capaz de realizar x cálculos por segundo, suponiendo que la carga de trabajo es adecuada en paralelo, en un programa lineal, todo lo que tiene es 1 núcleo.

  1. La velocidad del reloj es más bien la cantidad de ciclos que atraviesa el procesador en el espacio de un segundo, de modo que mientras todos los núcleos se ejecuten a la misma velocidad, la velocidad de cada ciclo de reloj se mantiene igual sin importar cuántos núcleosexiste. En otras palabras, Hz =( core1Hz + core2Hz +. ..) / núcleos.

Creo que es una falacia pensar que 4 x 3GHz = 12GHz, si las matemáticas funcionan, pero estás comparando manzanas con naranjas y las sumas simplemente no son correctas, GHz simplemente no puede sumarse para cada situación. Lo cambiaría a 4 x 3GHz = 4 x 3GHz.

¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.