Hola amigos,
Paso a saludarlos y a la vez solicitarles de su apoyo, resulta que necesito que un script utilice mas de un núcleo ya que requiero que un proceso se ejecute más rápido, por ahí leí que la forma de solventar esto es utilizando lo que se conoce como paralelizar cosa que es un término nuevo para mí.
Tengo 10 GB en Ram y el script que pruebo es el siguiente:
Código:
#!/bin/bash
function maxmem {
while [ `free | grep Mem | awk '{print $4}'` -lt 50000 ]
do
sleep 1
done
}
task(){
sleep 0.5; echo "$1";
}
for thing in a b c d e f g; do
maxmem; task "$thing" &
done
wait
Como ven, me estoy basando en el valor de la memoria dispnible, pero por ahí leí que otra forma de hacerlo es utilizando el número de núcleos máximo -1 pero no sé cómo hacer esto.
el máximo de núcleos -1 lo obtengo así:
let MAXNUCLEOS=(`ls -ld /sys/devices/system/cpu/cpu*|wc -l`)-1
¿Cómo puedo hacer para que en lugar de utilizar un dato de memoria disponible pueda utilizar el valor de $MAXNUCLEOS para evitar que es sistema se cuelgue durante la ejecución del script?
Me ayudan por favor? Desde ya les agradezco su ayuda