Hola,
Me gustaría saber si hay alguna distribución de linux que le saque todo el rendimiento a los nuevos procesadores con doble núcleo que están saliendo al mercado actualmente.
Gracias por la ayuda.
| ||||
Re: Distro nuevos micros ¿Qué es sacarle todo el rendimiento? Te refieres al kernel o alguna aplicacion en particular... Se mas especifico... Saludos
__________________ “Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar” |
| ||||
Re: Distro nuevos micros Si no me equivoco, para sacar provecho a procesadores multi-núcleo basta con instalar un kernel SMP. Al menos en Debian. Aunque imagino que otras distros también tendrán esa posibilidad. |
| ||||
Re: Distro nuevos micros No es tan sencillo como instalar un kernel smp, los kernel smp no es que estén preparados para multinúcleo sino para procesamiento en clusters, obviamente si tenemos un procesador dual core pues tenemos un pequeño cluster con el que vamos a desarrollar todas las funcionalidades del procesador en cuestión, el caso es que defero tiene toda la razón e instalar un kernel smp es la mejor opción para un dual core aunque la diferencia no es muy grande, la verdad... saludos
__________________ “Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar” |
| |||
Re: Distro nuevos micros Cita: No, un kernel SMP es la única manera de que Linux maneje varios procesadores, sean 2 o 100.Para algunos procesadores en concreto, como el mío, un P4 3.0Ghz HyperThreading han salido algunas opciones en los últimos kernels para optimizar el uso en ese procesador específico. Para los Core Duo, que yo sepa, no hay (simplemente, kernel SMP); y no sé si habrá alguna diferencia. Para HyperThreading es más normal, puesto que no son 2 CPUs reales, y hay que hacer un tratamiento especial. |
| ||||
Re: Distro nuevos micros Ah si claro que si MaxExtreme pero un conjunto de procesadores no es otra cosa que un cluster así sean diferentes máquinas o en la misma maquina porque el procesamiento se está haciendo en paralelo y he ahi la razon de ser del kernel SMP, la verdad desconozco el funcionamiento del core duo pero la idea es que SMP optimiza el paralelismo en diferentes procesadores. Saludos
__________________ “Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar” |
| |||
Re: Distro nuevos micros Cita: (Hablando con mi escaso conocimiento del kernel: la información puede no ser exacta)
Iniciado por Koveart Ah si claro que si MaxExtreme pero un conjunto de procesadores no es otra cosa que un cluster así sean diferentes máquinas o en la misma maquina porque el procesamiento se está haciendo en paralelo y he ahi la razon de ser del kernel SMP, la verdad desconozco el funcionamiento del core duo pero la idea es que SMP optimiza el paralelismo en diferentes procesadores. No es que "optimice" el paralelismo, sino que lo añade por completo; porque, al contrario, un kernel no-SMP no tiene nada de paralelismo. Es decir, un kernel no-SMP sólo usará el primer procesador, y uno que no usará los que encuentre hasta el máximo que le marques en la configuración. Esto es bueno, porque la gente que sólo disponga de un procesador tendrá el código completamente optimizado para lidiar con sólo un procesador (mucho más sencillo y rápido), sin preocuparle al kernel lo más mínimo acerca de cómo se manejan varios; y la gente que tenga varios, por el contrario, podrá tener el paralelismo "optimizado" como dices tú. La diferencia en el código resultante no es tan grande, porque aunque construyas un kernel no-SMP, lo normal es hacerle "preemptable", que quiere decir que el código debe estar preparado para condiciones de carrera, secciones críticas, ser interrumpido, y un largo etc. igual que cuando es SMP; lo cual es la parte interesante de la programación de kernels, lo que la hace tan peligrosa y que me guste ;) Última edición por MaxExtreme; 31/12/2006 a las 06:46 |
| |||
Re: Distro nuevos micros Cita: Haz esto:1. Consigue el último kernel estable. 2. Selecciona que sea SMP y Preemptable 3. Indica que el máximo número de procesadores será 2. 4. Ajusta la arquitectura resultante a la tuya (busca el nombre de tu procesador o uno equivalente en la lista). Es aquí donde notarás la gran diferencia. 5. Ajusta la frecuencia del timer a un valor intermedio. 6. Revisa si hay alguna opción adicional/especial para tu procesador (como para HyperThreading para el mío). 7. Desactiva cualquier opción de debug que haya. 8. Elimina al máximo posible los drivers que no vayas a usar. 9... Si haces todo eso, te va a parecer que tu ordenador vuela :) |
| ||||
Re: Distro nuevos micros Muy interesante este tema. Si no he entendido mal cómo funciona lo de la paralelización de procesos en sistemas multi-núcleo, que el kernel soporte paralelización es útil, pero no resuelve por completo la papeleta, ya que las propias aplicaciones deberían también incluir la posibilidad de procesar en paralelo. Me explico: por mucho que el kernel sea capaz de repartir procesos entre distintos procesadores, si abro OpenOffice y éste no es capaz de "dividir" un proceso y servírselo al kernel como dos procesos, éste no se repartirá entre los dos núcleos (corregidme si he dicho una burrada). En ese caso, con aplicaciones incapaces de separar procesos, un procesador de doble núcleo sólo resultará útil cuando estemos ejecutando varias aplicaciones, pero no cuando estemos ejecutando una sola aplicación muy gorda. Si nos ponemos a comprimir vídeo (una tarea que requiere bastante capacidad de proceso), si el programa que se encarga de la compresión no es capaz de dividirlo en varios procesos, uno de los núcleos del procesador estará inactivo mientras el otro asume por completo la tarea de la compresión del vídeo. Recuerdo haber leído que sí que hay aplicaciones capaces de aprovechar la capacidad de procesamiento en paralelo de los procesadores multinúcleo. Creo recordar que se mencionaba TheGIMP, y seguramente otras aplicaciones que dependen en gran medida del procesador incluirán opciones similares. Apostaría a que Blender o Apache pueden aprovechar las ventajas de tu nuevo dual-core. Aunque quizás debas compilarlos con opciones específicas para que aprovechen esa capacidad. |
| ||||
Re: Distro nuevos micros Este link puede despejar muchas dudas acerca del topico que se trata en el tema http://cobweb.ecn.purdue.edu/~pplinux/ppsmp.html Saludos
__________________ “Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar” |
| |||
Re: Distro nuevos micros Cita: Hum, no está relacionado. El kernel de Linux (como la mayoríad e sistemas operativos multitarea) pese a que tenga un sólo procesador, debe permitir a los procesos bifurcarse.
Iniciado por Defero.tk Muy interesante este tema. Si no he entendido mal cómo funciona lo de la paralelización de procesos en sistemas multi-núcleo, que el kernel soporte paralelización es útil, pero no resuelve por completo la papeleta, ya que las propias aplicaciones deberían también incluir la posibilidad de procesar en paralelo. Me explico: por mucho que el kernel sea capaz de repartir procesos entre distintos procesadores, si abro OpenOffice y éste no es capaz de "dividir" un proceso y servírselo al kernel como dos procesos, éste no se repartirá entre los dos núcleos (corregidme si he dicho una burrada). En Linux, una de las maneras es fork(), para crear hilos; o en Windows para crear procesos CreateThread()... Son ejemplos. Que el kernel sea SMP, quiere decir que es capaz de repartir los procesos/hilos entre los distintos procesadores sin que se arme un follón. Cita: Normalmente los programas que hacen tareas "gordas" vienen preparados (cómo no, es algo básico) para dividir las tareas.En ese caso, con aplicaciones incapaces de separar procesos, un procesador de doble núcleo sólo resultará útil cuando estemos ejecutando varias aplicaciones, pero no cuando estemos ejecutando una sola aplicación muy gorda. Si nos ponemos a comprimir vídeo (una tarea que requiere bastante capacidad de proceso), si el programa que se encarga de la compresión no es capaz de dividirlo en varios procesos, uno de los núcleos del procesador estará inactivo mientras el otro asume por completo la tarea de la compresión del vídeo. En cualquier caso, si no lo está, siempre será mejor tener un núcleo dedicado a eso y el otro núcleo al resto (que es mucho si tenemos muchos procesos); evitando cambios de contexto al que realiza la tarea compleja, y por tanto, incrementando la velocidad de procesado de la tarea gorda y manteniendo pese a ello la respuesta del equipo. Cita: Hay varias maneras de hacerlo. La más rudimentaria es dividir la aplicación en varios hilos o procesos y esperar que el kernel se de cuenta de que trabajan mucho y debería separarlas. Mejor es inidicárselo tú mismo; y para mi gusto, lo mejor es utilizar algún estándar como OpenMP dedicado precisamente a hacer de manera "elegante", fácil y portable las tareas que requieran de paralelización. Recuerdo haber leído que sí que hay aplicaciones capaces de aprovechar la capacidad de procesamiento en paralelo de los procesadores multinúcleo. |
| |||
Re: Distro nuevos micros Cita: Uf, 1996... las cosas han cambiado muuucho desde entonces ;)
Iniciado por Koveart Este link puede despejar muchas dudas acerca del topico que se trata en el tema http://cobweb.ecn.purdue.edu/~pplinux/ppsmp.html Saludos |
| ||||
Re: Distro nuevos micros El concepto básico es el mismo, la verdad no creo que haya aqui expertos en SMP ni multihilos, es solamente un abrebocas hacia SMP, y de dónde viene. Si se requiren lecturas de lcustering más especializadas pues ya se entenderán otras cosas, es como hablar del kernel de linux, obviamente ahora tiene miles de mejoras pero el concepto básico de qué es se puede leer en documentos de 1992 o de esa época, vamos es lo que yo he hecho cuando quiero entender los principios de funcionamiento del kernel de linux, remontarme a ver de dónde viene y cómo funciona. Saludos
__________________ “Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar” |
| |||
Re: Distro nuevos micros De nada, hice lo mejor que pude. :) Ya me explicarás algún día tú a mi como entender lo de la parte contratante de la primera parte... ;) |
| |||
Re: Distro nuevos micros Cita: Ciertamente, pero éstos del kernel están siempre tan moviditos ;) que hay cambios realmente importantes cada poco tiempo.
Iniciado por Koveart El concepto básico es el mismo, la verdad no creo que haya aqui expertos en SMP ni multihilos, es solamente un abrebocas hacia SMP, y de dónde viene. Si se requiren lecturas de lcustering más especializadas pues ya se entenderán otras cosas, es como hablar del kernel de linux, obviamente ahora tiene miles de mejoras pero el concepto básico de qué es se puede leer en documentos de 1992 o de esa época, vamos es lo que yo he hecho cuando quiero entender los principios de funcionamiento del kernel de linux, remontarme a ver de dónde viene y cómo funciona. Por ejemplo, el primer paso hacia los kernels de hoy en día que soportan varios procesadores fue añadir una función de "locking" (protección para que no sea accedido algo desde varios sitios a la vez) general, llamada el "Big Kernel Lock". Era fácil de usar, pero muy lento; aunque para empezar servía. Luego se ha ido "granularizando", hasta que esa función no se usa en casi ningún lado, y se tienen controles a lo largo de todo el kernel para desmenuzar cada parte no crítica que pueda ser ejecutada más rápido y sin bloquear a otros. |
| ||||
Re: Distro nuevos micros Siguiendo con el tema: tengo entendido que varias distribuciones (Fedora y Ubuntu entre otras) ya no incluyen un kernel SMP en sus discos de instalación, sino que vienen con un kernel único que es capaz de manejar sistemas con uno o más procesadores. ¿Alguien tiene más información al respecto?
__________________ Christian González, "OCIOMax" http://chgonzalez.blogspot.com http://twitter.com/chgonzalez |
| ||||
Re: Distro nuevos micros Edito: Si trae. Se llama kernel-linus-smp, pero no se que significa eso de "linus" (asi con "s")
__________________ ¡Volviendo a la programación! |
| |||
Re: Distro nuevos micros Cita: Si es capaz de manejar más de uno, tiene que ser SMP. ¿O no aparece marcado como tal?
Iniciado por ociomax Siguiendo con el tema: tengo entendido que varias distribuciones (Fedora y Ubuntu entre otras) ya no incluyen un kernel SMP en sus discos de instalación, sino que vienen con un kernel único que es capaz de manejar sistemas con uno o más procesadores. ¿Alguien tiene más información al respecto? Un kernel SMP puede manejar uno (evidente) o más procesadores; pero si sólo tienes uno, es mejor desactivarlo, porque eliminas un buen trecho de código. La mejor opción para ellos, será distribuir por defecto un SMP. |
| |||
Re: Distro nuevos micros Hace referencia a Linus Torvalds, pero no veo nada oficial ni en Google (salvo nombres de paquetes) ni en la lista del kernel. |
| ||||
Re: Distro nuevos micros Cita: No, no aparece marcado como SMP, ni en los CDs/DVD de instalación ni en los mirrors (por ejemplo ftp://ftp.linux.cl/pub/fedora/6/i386/os/Fedora/RPMS). Pero al parecer tienes razón: el kernel es SMP (ver aclaración más abajo). Cita: Pues al parecer esa es justamente la opción que eligieron: distribuir un sólo kernel que sea capaz de manejar SMP. Examinando en CHANGELOG del kernel de Fedora 6 encuentro lo siguiente:
Código:
Si entiendo bien, el sistema es capaz de desactivar las características SMP del kernel cuando no son necesarias. Ignoro si es un parche aplicado por las distribuciones o es una característica del kernel "oficial"; seguiré investigando al respecto. [christian@localhost ~]$rpm -q --changelog kernel (... snip) * lun abr 10 2006 Dave Jones <[email protected]> - 2.6.17rc1-git2 & git3 - Enable SMP on all x86 kernels. SMP_ALTERNATIVES disables the spinlocks etc at runtime. (... snip) [christian@localhost ~]$ uname -r 2.6.18-1.2868.fc6 [christian@localhost ~]$
__________________ Christian González, "OCIOMax" http://chgonzalez.blogspot.com http://twitter.com/chgonzalez |
| |||
Re: Distro nuevos micros Cita: Me refería a que sí, al hacer "$ uname -a" te aparecía algún tag de SMP (al menos compilando como SMP en los oficiales aparece).
Iniciado por ociomax No, no aparece marcado como SMP, ni en los CDs/DVD de instalación ni en los mirrors (por ejemplo ftp://ftp.linux.cl/pub/fedora/6/i386/os/Fedora/RPMS). Pero al parecer tienes razón: el kernel es SMP (ver aclaración más abajo). Cita: Pues no conozco ninguna opción que permita "deshacerse" de ser SMP en tiempo de ejecución, cuando tenga un rato reviso la configuración a ver, pero me huelo a que implicaría más tener los condicionales para saber si es o no SMP que directamente usarlo pero con un sólo procesador. Si entiendo bien, el sistema es capaz de desactivar las características SMP del kernel cuando no son necesarias. Ignoro si es un parche aplicado por las distribuciones o es una característica del kernel "oficial"; seguiré investigando al respecto. |
| ||||
Re: Distro nuevos micros Cita:
Código:
[christian@localhost ~]$ uname -a Linux localhost.localdomain 2.6.18-1.2868.fc6 #1 SMP Fri Dec 15 17:32:54 EST 2006 i686 i686 i386 GNU/Linux [christian@localhost ~]$ Cita: No soy experto en el kernel (al menos no tanto como tú, aún no escribo ningún driver ), así que no podría emitir un juicio al respecto. De todas formas, voy a echarle un ojo al SRPM del kernel de Fedora a ver si encuentro alguna aclaración al respecto.
Iniciado por MaxExtreme Pues no conozco ninguna opción que permita "deshacerse" de ser SMP en tiempo de ejecución, cuando tenga un rato reviso la configuración a ver, pero me huelo a que implicaría más tener los condicionales para saber si es o no SMP que directamente usarlo pero con un sólo procesador.
__________________ Christian González, "OCIOMax" http://chgonzalez.blogspot.com http://twitter.com/chgonzalez |
| |||
Re: Distro nuevos micros Ahí tienes marcado que es SMP, como te dije ;) |
| ||||
Re: Distro nuevos micros Curioso. Yo pensaba que Debian (Etch) no incluía "de serie" soporte para multiproceso, pero me encuentro con lo siguiente: dandebian@dan:[~]$ uname -a Linux dan 2.6.18-3-k7 #1 SMP Mon Dec 4 17:23:11 UTC 2006 i686 GNU/Linux Y yo no he buscado instalar un kernel SMP. Lo curioso es que al hacer una búsqueda específica de kernel SMP, me encuentro con lo siguiente: dandebian@dan:[~]$ apt-cache search linux-image | grep smp linux-image-2.6-686-smp - Linux 2.6 image on PPro/Celeron/PII/PIII/P4 SMP - transition package linux-image-2.6-k7-smp - Linux 2.6 image on AMD K7 SMP - transition package Si no lo interpreto mal, parece ser que la decisión de incluir un kernel SMP por defecto es algo reciente, y se mantienen los paquetes con nombre SMP sólo para no "marear" a los que ya tuvieran instalado el kernel "multiprocesador" cuando éste aún no era el kernel por defecto. Supongo que es debido a la proliferación de procesadores de doble núcleo, como el Intel Core Duo y el AMD Turion X2. |
| ||||
Re: Distro nuevos micros Miren mi caso:
Código:
El nombre de los paquetes no incluyen SMP (como hasta en la version de Mandriva 2006) pero si lo es...pupi@micasa ~ $ rpm -qa | grep kernel kernel-source-2.6.17.5mdv-1-1mdv2007.0 kernel-2.6.17.5mdv-1-1mdv2007.0 pupi@micasa ~ $ uname -a Linux micasa.zonapupi.com.ar 2.6.17-5mdv #1 SMP Wed Sep 13 14:32:31 EDT 2006 i686 AMD Sempron(tm) Processor 2600+ GNU/Linux pupi@micasa ~ $ Saludos.
__________________ ¡Volviendo a la programación! |
| |||
Re: Distro nuevos micros Cita: Sí, supongo que es la nueva "moda", para que los usuarios novatos de más de un procesador no noten que su ordenador va más lento que cuando usan Windows.
Iniciado por Defero.tk Si no lo interpreto mal, parece ser que la decisión de incluir un kernel SMP por defecto es algo reciente, y se mantienen los paquetes con nombre SMP sólo para no "marear" a los que ya tuvieran instalado el kernel "multiprocesador" cuando éste aún no era el kernel por defecto. Supongo que es debido a la proliferación de procesadores de doble núcleo, como el Intel Core Duo y el AMD Turion X2. Lo cual nos fastidia un poco a los demás, pero en fin ;) |
| ||||
Re: Distro nuevos micros Cita: No termino de entender esta frase, por más que la he leído varias veces...Por otro lado, ¿cuánto influye un par de optimizaciones del kernel para el procesador? Especialmente si hablamos de equipos de escritorio, cuyo procesador pasa dormiendo el 90% del tiempo. http://www.ubiobio.cl/~gpoo/weblog/archives/000471.html Siempre puedes compilar tu propio kernel .
__________________ Christian González, "OCIOMax" http://chgonzalez.blogspot.com http://twitter.com/chgonzalez |
| |||
Re: Distro nuevos micros Cita: Es fácil: Si los kernels fuesen no-SMP, las personas que empiezan con Linux (o que no saben compilar o descargar un kernel ajustado: es decir, la mayoría) notarían que su ordenador va muy lento (puesto que Linux sólo estaría usando un procesador/núcleo).En cambio, si lo hacen por defecto SMP, todos creerán que todo va como debiera :) Cita: ¿Un par? Un kernel SMP requiere mucho más código que uno que no lo sea, algoritmos diferentes, un scheduler preparado para la distribución de hilos entre procesadores, soporte de funciones dedicadas a ello para los programas de espacio de usuario, etc.Por otro lado, ¿cuánto influye un par de optimizaciones del kernel para el procesador? Es más, si hacemos nuestro kernel no-SMP y no-preemptable, inmensas cantidades de código desaparecen relacionadas con estructuras críticas, locking, etc. Hasta ahora, los drivers que he escrito contienen un ~20% de código relacionado precisamente con estar preparados para equipos multiprocesador/preemptables, lo cual, para ser sincero, aburre bastante :) que además fue lo que me llevó el 70% del tiempo hacer, corregir, probar... Ahora imagina que ese % (que no se cuanto es en todo el kernel) lo eliminas de cada driver del kernel, de cada módulo, de todo el kernel en general. Se nota una gran diferencia. Esa URL me parece poco realista. ¿Un 1% de diferencia? Venga ya... Como no hay casi diferencias entre un i386 y mi P4... Ya ni te cuento si empiezo a eliminar todo driver/módulo que no necesito, adapto cada milímetro del kernel a mi ordenador... Cita: No, porque cuando vaya a casa de un amigo y use un LiveCD que venga como SMP, no tendré opción, y me fastidiaré :) Siempre puedes compilar tu propio kernel . |