Reloj de CPU y caché L3 para programación


0

Me interesa saber cuánto afectan las diferentes opciones de hardware a los siguientes casos de uso:

  • Programación en Python: muchos cálculos matemáticos pesados ​​utilizando matrices numpy
  • Aplicaciones de datos en Python y Pandas, usando varios GB de datos

Podré paralelizar una minoría de estas aplicaciones usando el módulo Amenaza. La lógica de la mayoría no lo permitirá.

¿Qué importancia tienen las siguientes dos configuraciones / extensiones de hardware para mis propósitos?

  • 2.3 Ghz vs 2.7 Ghz
  • 6mb L3 vs 8mb L3

Tal como está, esta es esencialmente una recomendación de compra. Sin embargo, si generalizara un poco la pregunta, tal vez preguntando sobre las ventajas de más caché l3, por ejemplo, esto podría terminar siendo más útil para un público más amplio.
Journeyman Geek

Respuestas:


2

Suponiendo que esté hablando de una Macbook o Macbook Pro de la generación actual, la diferencia en el rendimiento entre los dos modelos que citó (2.3 GHz con 6 MB de caché L3 versus 2.7 GHz con 8 MB de caché L3) hará, aproximadamente, entre una diferencia del 2% al 15%, dependiendo de la carga de trabajo exacta. Definitivamente no es nada devastador. Pero todo depende del tiempo que tarden en calcular sus datos. Mi cifra del 2% al 15% proviene de lo que he leído en reseñas y puntos de referencia de los modernos procesadores a escala para computadora portátil (Ivy Bridge y Haswell), de la misma generación, con diferentes velocidades de reloj. En general, la diferencia de rendimiento de un solo subproceso entre el más lento y el más rápido es de alrededor del 25% en puntos de referencia sintéticos extremadamente específicos; 10-15% en casos promedio; y 2% o menos en algunos puntos de referencia que realmente no

Para usar un ejemplo ridículo, si tu computador de matriz numpy tardó 1 millón de años en llegar al procesador de 2,3 GHz, reducir el 15% te ahorraría 150,000 años , o aproximadamente el tiempo que el homo sapiens sapiens ha estado jugando.

Obviamente, si tuviera una vida útil de, digamos, 2 millones de años, afeitarse 150k marcaría una gran diferencia. Incluso podría ejecutar el cálculo dos veces antes de aterrizar en su lecho de muerte.

Por otro lado, si sus cálculos se ejecutan casi instantáneamente en la mayoría de las CPU modernas, agregar un 15% de rendimiento no tendrá mucha importancia. Tomemos, por ejemplo, algo como ejecutar Google Chrome. ¿Notará alguna diferencia perceptible en la velocidad a la que se cargan las páginas web y los videos, mientras ejecuta un Macbook de la generación actual con esos dos procesadores diferentes? Dudo mucho que puedas percibir la diferencia. Pero luego, si comenzó a cargar un archivo HTML de 24 GB que tardó varias horas en analizar, la diferencia podría comenzar a acumularse en un tiempo mensurable.

Al final, sacrificarás tiempo o sacrificarás dinero cuando hagas cosas que involucren algoritmos computacionalmente intensivos que tarden más de unos pocos milisegundos en completarse. Si obtiene el procesador lento, esperará más tiempo como consecuencia de pagar menos dinero. Si obtiene el procesador rápido, pagará más como consecuencia de no tener que esperar tanto.


¿Podrías quizás distinguir entre las dos dimensiones Herz versus el caché L3? Por ejemplo, no estoy seguro de cuánto efecto tiene realmente el 2mb en el caché L3, dado que mis matrices son de todos los tamaños en cientos de mb al menos: "¿Cuánto podría importar dado que tiene que leer desde RAM todo el tiempo de todos modos ". Estos porcentajes en realidad son bastante interesantes para mí, una simulación lleva unos 5-6 días en mi 2.4 i5, por lo que el 10% ya sería medio día.
FooBar

Honestamente, si usted está simulaciones que se llevan a correr ese tiempo, sugeriría buscando seriamente en una especie de plataforma de servidor, o al menos un ordenador de sobremesa de gama alta, para hacer sus cálculos sobre. Puede comunicarse con él a través de ssh o algún tipo de escritorio remoto. Las CPU de los portátiles se reducen significativamente en comparación con lo que pueden hacer los servidores. Te iría bien con un Core i7-4960X overclockeado más o menos.
allquixotic

Para la velocidad de reloj vs caché, diría que depende enormemente de la localidad de caché de sus algoritmos. No estoy seguro de cuán configurable es python / numpy, o si puede controlar directamente el orden de acceso a los datos, pero si puede obtener una buena ubicación de caché y golpear repetidamente los mismos datos una y otra vez, más caché podría importar significativamente más que más velocidad de reloj. Por otro lado, si la localidad de caché de su algoritmo es pobre, la cantidad bruta de instrucciones por segundo (que proviene de la velocidad del reloj) sería más importante.
allquixotic

Para describir la localidad de caché: imagine a dos personas diferentes comiendo en dos buffets separados, que se presentan como largas mesas con platos variados. Ambos tienen mucha hambre y eventualmente despejarán la mesa del buffet. Uno de ellos come el 100% de las papas antes de tocar cualquier otro alimento, mientras que el otro toma 1 cucharada de cada artículo en su plato, come eso y se repite. El tipo que come exclusivamente un alimento a la vez antes de limpiarlo tendría una excelente localidad de caché en su "algoritmo". El que come un poco de todo tiene una mala localidad de caché.
allquixotic
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.