Optimizar el uso del CPU x2 con software limitado

Hola a todos, soy Dani y me dedico al diseño gráfico y creatividad en general.

Hace un año que me inicie en linux utilizando ubuntu studio, todavía estoy verde con los comandos, pero me aventuro. Mi portátil no puede tirar bien con algunos trabajos que realizo en inkscape (con muchisimos nodos).

Tengo un thosiba equium con CPU AMD thuron de dos núcleos a 2 ghz . 4g de RAM tarjeta de vídeo Rs690M raedon x1200 (que no se si lo usara el programa vectorial).

Mi problema, es algo que observo tanto con ubuntu studio como en el live de manjaro. Es que cuando trabaja inkscape solo usa al 100% un núcleo de la cpu, el otro no se inmuta. Si se alternan, me imagino que para que no se caliente demasiado. Me gustaría saber como ¿ podría aprovechar el resto libre de algún modo que beneficie a inkscape?. He probado a modificar la prioridad del proceso para darle mas importancia a inkscape pero no cambia nada, solo cambia cuando tengo otras aplicaciones que usan lo que queda libre del otro procesador.

He encontrado algo interesante. Parece que justo lo que andaba buscando. Hablan sobre el comando taskset e isolcpus. Copiado y pegado de : http://blog.desdelinux.net/como-asignar … o-taskset/

Dedicar un núcleo únicamente a un programa en particular

Si bien taskset permite asignar a un programa a un núcleo en particular, eso no significa que no haya otros programas o procesos que hagan uso del mismo. Para evitar esto y dedicar un núcleo entero a un programa en particular, hay que utilizar el parámetro del kernel “isolcpus”, que permite reservar un núcleo durante el arranque.

Para ello, hay que añadir el parámetro “isolcpus = ” en la línea del kernel en GRUB.
Por ejemplo, para reservar los núcleos ID 0 y 1, hay que añadir “isolcpus = 0,1”.

Una vez hecho esto, el planificador de Linux no asignará ningún proceso regular al núcleo reservado, a menos que sea específicamente asignado con taskset.

Ahora tengo que probarlo, pero no tengo claro donde tengo que poner “isolcpus =” veo el booteo de los sistemas operativos (tengo win7 y ubuntu studio) y al abrir las ordenes de cada uno, me doy cuenta que no entiendo nada. si alguien me puede ayudar se lo agradecería.

Agradecería consejos sobre pasarme de ubuntu studio a manjaro. teniendo en cuenta que busco liberar al procesador para que lo aprobeche el resto del software.
Para mi caso parece que manjaro si es mas fluido y ocupa menos cpu. Aun que dicen que ubuntu studio tiene algún tipo de control low latency que no tengo claro si manjaro tendrá.

Gracias
Saludos!

1 me gusta

Lo primero, bienvenido Daniel.

¿Qué versión del kernel tienes instalada con Ubuntu Studio? Puedes comprobarlo con el comando

uname -a

Una versión antigua del kernel puede ser un problema. Sin embargo, también algo me dice que puede ser el procesador en si… La verdad es que es la primera vez que encuentro un problema así. Quizás nuestro senior @Razlobo pueda arrojar algo de luz sobre el asunto.

@Daniel en este caso, ese comando haría justo lo contrario a lo que tú quieres. A ti lo que te interesa es que inskcape funcione en varios nucleos exprimiendo todo tu procesador, con ese comando lo único que conseguirías sería asignarle un núcleo a inskcape para él solo, lo cual ya hace.

El problema parece deberse a que inskcape no está diseñado como multicore y por eso no usa ambos de forma simultanea.

Parece que puedes activar alguna opción aunque tampoco hará maravillas

At runtime, you can adjust the number of threads in ‘File > Inkscape preferences > Rendering’, however - depending on the content of the current document, it might have no effect (unless you use lots of filter effects).

1 me gusta

Gracias SrFreak

uname -a me dice esto:

Linux Pc 3.13.0-76-lowlatency #120-Ubuntu SMP PREEMPT Mon Jan 18 17:19:34 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Respecto al procesador, en windows si puedo observar que inkscape aprovecha los dos núcleos, no se si son cambios del programa para cada SO o como dices mi versión del kernel. voy a intentar actualizarla…
Gracias!

Hola Miguel Ángel, probé modificar las opciones que me indicas pero no cambio nada, puede que solo funcione para la aplicación de filtros. Leyendo en otros foros, si me he encontrado con lo que comentas sobre que inkscape no esta diseñado como multicore. es por eso que pensé esta opción de reservar un núcleo íntegramente para ejecutar ahí inkscape, sin interrupciones de ningún otro proceso.
Gracias!

Buenas, acabo de actualizar el kernel: se queja de algún error, pero no parece grave…

Linux Pc 4.4.0-040400-lowlatency #201601101930 SMP PREEMPT Mon Jan 11 00:38:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Estoy haciendo pruebas con inkscape. He comprobado que si utiliza los dos núcleos para los filtros (a esto no le preste atención con el kernel anterior así que no se si se comportaba así antes) pero en cuanto a mover multiplicar nodos(que es lo que me preocupa ahora), sigue utilizando un solo núcleo.

Ahora tengo la ultima versión del kernel así que algo he mejorado.
Saludos!

Entonces como decía @MiguelAngelLV, va a ser problema de Inkscape en si

¿has comprobado si el inskcape de windows y de linux son la misma versión?

1 me gusta

Hola @Daniel:

Ya que @jsalvador dice que soy el experto… más quisiera yo. ;^)

No puedo dar ninguna referencia sobre el uso de multiprocesadores, creo que lo comentado por @MiguelAngelLV sobre Inkscape en este aspecto será correcto. De hecho pensaba que la gestión del procesamiento en distintos núcleos o procesadores (antes no había procesadores de más de un núcleo y hay sistemas con más de un procesador con varios núcleos) la hacia directamente el núcleo Linux.

Si se que hay aplicaciones que necesitan configuración o extras especiales para el multiproceso (como por ejemplo en Gnu/R que hay paquetes específicos para eso) pero pensaba que era para mejorarlo no para realizarlo.

Lo que si puedo aclarar es lo que comentas sobre la baja latencia de Ubuntu Studio. Esta distribución esta pensada y concebida para artistas, pero principalmente para músicos. Para la grabación de música lo idóneo es contar con una baja latencia para no generar retrasos no reales en la grabación, y el núcleo de Ubuntu Studio tiene algún parche o configuración especial en ese sentido. Al igual que, por ejemplo, MusiX.

No tengo claro la repercusión de la baja latencia en el rendimiento de un proceso multitarea, la verdad sea dicha.

Al respecto de que notas Manjaro más ligera… pues cualquiera sabe, a veces es cosa del escritorio y, muchas más, es solo un efecto a causa de una mejor configuración o un mejor controlador de la gráfica. Ubuntu Studio, si mal no recuerdo, utiliza Xfce, no se que utiliza Manjaro, puede ser que, si hay cambio de escritorio, te llegue esa percepción.

Siento no poder aportar mucho más.

Salud y Revolución.

Lobo.

Bnas Miguel.

Si que son la misma versión (0.91). Y curiosamente las pruevas que he hecho de crear una matriz a partir de una figura (Multiplicar el numero de nodos) son desconcertantes. en linux usando un solo nucleo tarda 1,10minutos y la misma operación en windows usando los dos nucleos, 1,16 minutos. no lo acabo de entender.

Pd: Para ver el uso de las CPUs en windows utilizo el monitor del sistema, en linux htop
Saludos!

Hola Razlobo
Me queda clara mi duda sobre la baja latencia del kernel de ubuntu studio, precisamente he podido comprobar que al actualizar el kernel, se ofrece en version normal y version baja latencia.

Si ubuntu studio usa xfce y el manjaro que he probado usa fluxbox.

Muchas gracias
Saludos!

Buenas
He conseguido insertar el comando “isolcpus” en el grub de manera adecuada y efectivamente todo se ejecutaba en una sola CPU.

isolcpus=0 (en mi caso)

Esto ha dejado la otra CPU libre. Así que con “taskset” he ejecutado el inkscape en la libre.

taskset -c 1 inkscape

Así inkscape dispone del núcleo integro para el.
Lo cierto es que no noto una diferencia apreciable : /

Gracias chicos
Saludos!

Inkscape fun facts.