Mostrando entradas con la etiqueta procesadores. Mostrar todas las entradas
Mostrando entradas con la etiqueta procesadores. Mostrar todas las entradas

martes, febrero 02, 2010

Z520 vs N270


Mi amiga Bo necesita un portátil a ser posible ligerito porque viaja mucho. Me pregunta por dos modelos concretos. Voy a darle el consejito, pero por supuesto se admiten sugerencias.

Ha mirado un poco lo que hay y le gustan dos modelos (que conste que a mí no me gustan tan pequeñitos):

1.-ASUS EEE PC 1001 HA. Me dice que viene con Windows 7 y cuesta 269 euros.
2.-ACER ASPIRE ONE 751. No me dice el S.O., aunque en el enlace que me ha enviado pone que Windows XP Home Edition. Bo me indica que la diferencia con el anterior son 30 euros, pero no me dice si más barato o más caro :-(

Esto es lo que dicen las cifras:

Pantalla Asus: 10,1 pulgadas.
Pantalla Acer: 11,6 pulgadas.

Peso Asus: <>
Peso Acer: 1,25-1,35 kg dependiendo de la batería que lleve.

Procesador y placa Asus: Intel Atom N270 de 1.6 GHz.
Procesador y placa Acer: Intel Atom Z520.

Disco duro Asus: 160 Gb.
Disco duro Acer: 160 Gb.

Memoria Asus: 1024 Mb DDR2.
Memoria Acer: DDR2 667/800 MHz 1Gb.

La chuleta para comparar los procesadores: http://ark.intel.com/ProductCollection.aspx?familyID=29035

Viendo estos datos yo te diría esto, Bo:

1.-La pantalla del Acer es mayor. No sé si esto es mejor o peor para tí. Mirando las medidas veo que el Acer es más ancho y largo, pero algo más fino que el Asus (muy muy poco).

2.-El procesador del Asus (N270) es ligeramente diferente al del Acer (Z520) y tienes que entender las diferencias para elegir el que prefieras.

  • En principio son de la misma fecha (2008).
  • Los dos tienen 1 core (nucleo) y 2 threads.
  • El Z520 funciona a 1,33 GHz en lugar de los 1,6 GHz del N270. Esto confunde un poco a la gente que puede pensar que el Z520 es inferior. Digamos que la ventaja de que funcione con una frecuencia menor es que consume menos watios y por lo tanto se calienta menos y las baterías duran más.
  • El Z520 trabajo con menos voltaje (0,75-1,1) que el N270 (0,9-1,1625).
  • Los dos incorporan tecnología Hyper-threading.
  • El Z520 incorpora Virtualization Technology (VT-x) y el N270 no. Esto a ti te da igual, pero para un informático puede ser importante. Aquí hay una lista de programas "especiales" que requieren el Intel VT o AMD-V.
  • El Z520 tiene "Idle States" y el N270 no. Esto sí te puede interesar cuando tiras de batería y el PC está bastante tiempo con poco uso. Se trata de entrar en la BIOS del aparato y activar un estado de bajo consumo. Me imagino que el procesador "tirará" menos, pero la batería durará más.
  • El z520 tiene una cosa llamada "Intel Demand Based Switching" y el N270 no. No creo que lo vayas a utilizar. Se trata de forzar por software una mayor frecuencia de reloj para mejorar el rendimiento del procesador. Lógicamente aumentarías el consumo.
3.-Con estas cosas que te he dicho creo que te estarás decantando por el Acer, pero tienes que tener en cuenta la última cosa: A mí me daría igual si no tuviera Sistema Operativo, si trajera un Linux, si viniera con XP, Vista,... Pero si vas a comprarlo con Windows creo que a estas alturas deberías elegir algo con el 7.

El Asus me decías que venía con Windows 7, pero en el enlace que me has pasado el Acer viene con XP. No creo que cueste mucho encontrarlo actualizado.

Saludos, y ahora sí, me tienes que decir que pone en el letrero Chino ese que me has regalado.

domingo, julio 19, 2009

Casi mejor no tocar la afinidad

Hola a tod@s,
Por fin de vacaciones, pero antes de marchar de viaje me gustaría saber si lo que ocurrió con el programa C le ha pasado a más gente, y por qué.

Recordar que teníamos un programita que ejecutamos marcando la afinidad a un procesador concreto y tardó 11 segundos más que sin toquetear la afinidad.

Primero una pequeña aclaración que analizaremos otro día:
El ordenador que utilicé en esas pruebas es un ADM Phenon x3, el cual tiene un único procesador con 3 cores (o nucleos en castellano). Windows nos dirá que hay tres procesadores y que podemos determinar la afinidad para forzar la ejecución en los procesadores que queramos, pero sólo hay un procesador y los núcleos comparten ancho de banda en el acceso a la caché L3 (memoria compartida por todos los cores). La caché L2 es la memoria que tiene cada core.

Bueno, ahora vamos a leer lo que otro (Iñaki Ayucar) ha analizado:

Artículo original en inglés: http://www.codeproject.com/Articles/35679/Parallel-computing-and-processor-affinity-Never-underestimate-the-Windows-Vista-Scheduler.aspx?display=PrintAll

Y en castellano: http://graphicdna.blogspot.com/2009/01/programacion-paralela-y-processor.html

¿Cual es el resumen?

1.-Al menos habría que abril un hilo por core físico en la máquina. Ya, pero el programa no es mio y el autor metió programación paralelizada en el programa original Fortran, pero no en el C. Esto será una mejora para el después de vacaciones.

2.-Este punto lo voy a poner tal cual está, porque lo explica de maravilla. El autor nos dice: "En un mundo ideal, una tarea simple, que no va a ser paralelizada más y que vive solita (no con las docenas de vecinos que un proceso tiene en un SO moderno), se gestiona mejor con una sola CPU, porque esto incrementa los aciertos de cache y elimina el consumo de la infraestructura de cambio entre hilos. Pero en la vida real, los procesos son interrumpidos por las operaciones del sistema, IO, otros procesos y muchas otras cosas. Una maquina multi-núcleo es perfecta para manejar todas esas interrupciones, porque puede repartirlas por los núcleos existentes, pero si comenzamos a fijar nuestras aplicaciones a CPUs específicas, la capacidad del sistema para evitar bloqueos y esperas se reduce considerablemente".

Uff, este punto número 2 lo podemos separar en otros cuantos:

2.1.-Cuidado, porque puede ocurrir que la ejecución en tu viejo portátil con una CPU pueda ir mejor, ya que hay más aciertos de cache y hay menor consumo por cambio de hilos.

2.2.-El hecho de que hay un montonazo de procesos extra en ejecución con sus respectivas interrupciones, etc. etc. da pie a que en tu nuevo pc multinucleo la cosa funcione mejor.

2.3.-En el caso de que estemos en nuestro pc nuevo multinucleo, fijar las CPU-s puede perjudicar ya que el sistema tiene menos opciones para evitar los bloqueos, esperas, etc.

En el artículo pasa a describir el tema de cómo fijar la afinidad y luego viene lo interesante:

Las pruebas:

Las pruebas se componen por 5 partes:

Parte I: Programa NO multihilo (como el nuestro).
Si se establece la afinidad el programa tarda 28 segundos más que si no se hace nada.
Mejor dejar hacer a Windows.

Parte II: Dos hilos de ejecución (principal + secundario con algún cálculo).
El programa tarda 3 segundos menos si no se establece la afinidad.
Mejor dejar hacer a Windows.

Parte III: Tres hilos de ejecución (principal + dos hilos de cálculo).
El programa tarda 2 segundos menos si no se establece la afinidad.
Mejor dejar hacer a Windows.

Parte IV: Cinco hilos de ejecución (principal + cuatro hilos de cálculo).
Empate técnico (bueno, por décimas gana la afinidad).
Windows ha perdido por la mínima.

Parte V: Nueve hilos de ejecución (principal + ocho hilos de cálculo).
El programa tarda 3 segundos menos si no se establece la afinidad.
Mejor dejar hacer a Windows.

Los resultados cuadran totalmente con lo que nos ocurría en el programita.

Parece que cuando la programación es multihilo es mejor no tocar la afinidad, aunque la diferencia es pequeña. Lo que está claro es que si el programa no es multihilo hay grandes diferencias en tiempo de ejecución siendo más rápido sin tocar la afinidad.

Saludos.

lunes, julio 13, 2009

Siguiendo los consejos recibidos el otro día la semana pasada hice la prueba de ejecución "con afinidad".

No fijé la afinidad por programación. Simplemente lancé la ejecución, y a toda leche modifiqué la afinidad con el Administrador de tareas de Windows.

Estoy con mi viejo portátil con un solo procesador por lo que no os puedo enseñar la opción, pero la explico...



Ahí arriba está el Administrador de tareas. He pinchado en una tarea y tengo opción de subir o bajar la prioridad de un proceso.

Si tuviera más de un procesador, debajo de la opción de prioridad tendríamos algo así como "afinidad". Al pinchar aparecen un check box donde podemos elegir uno o varios procesadores. Yo elegí el procesador 0.

Así fue la ejecución:

El PC estaba ligerito de trabajo:


Lanzo el proceso, pongo en marcha el cronometro y establezco la afinidad:

En la imagen de arriba ya se ve que un procesador se pone al 100% mientras que los otros dos prácticamente vuelven a la situación inicial.

Al final termina el proceso y todo vuelve a su ser:


Ahora lo importante, ¿qué ha pasado con el tiempo de ejecución?

Pues ha tardado 18 minutos 42 segundos. Once segundos más que sin tocar la afinidad.

Creo que vamos a tener que enterarnos de la forma de funcionamiento de estos procesadores AMD64 para entender algo.

Saludos.