Registrarse
Home
Foros
Miembros
Calendario
Normas
Ayuda

Foros de usuarios de openSUSE
Retroceder   ForoSUSE > Zona Técnica > Programación y Scripts


Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook

Respuesta
 
Herramientas Desplegado

Utilizar varios nucleos en script
  #1  
Antiguo 22-sep-2018, 08:43
darktux darktux está desconectado
Habitual
 
Fecha de Ingreso: 10-diciembre-2009
Versión: 11.4
Mensajes: 214
Agradecimientos: 4
Agradecido 2 Veces en 2 Mensajes
Poder de Credibilidad: 9
darktux está en el buen camino
Utilizar varios nucleos en script

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
Responder Citando
  #2  
Antiguo 22-sep-2018, 10:08
Avatar de DiabloRojo
DiabloRojo DiabloRojo está desconectado
Super Moderador
 
Fecha de Ingreso: 19-marzo-2005
Ubicación: En un lugar del planeta Tierra
Versión: La ultima estable
Mensajes: 17.020
Agradecimientos: 635
Agradecido 2.705 Veces en 1.840 Mensajes
Poder de Credibilidad: 10
DiabloRojo llegará a ser famoso muy pronto
Para obtener el nº maximo de Cores, lee esto: https://stackoverflow.com/questions/...e-command-line

Se me ocurre que uses esa variable restandole uno para poner un loop que ejecute como máximo esos procesos.

linux bash run multiple cores
__________________
NORMAS A CUMPLIR EN LOS FOROS (Lectura obligatoria) Lo siento, no contesto privados sobre problemas con GNU/Linux.
Síguenos en TWITTER y en FACEBOOK
Código:
Buscador de   Alojamiento      Alojamiento     Otros
 paquetes:    de imágenes:     de ficheros:    buscadores:
Search        TinyPic          Ifile Wuala     Simple y Facil
Webpinstant   Paste Suse       SendSpace       TextSnip  Cl1p

Última edición por DiabloRojo; 22-sep-2018 a las 10:10
Responder Citando
  #3  
Antiguo 22-sep-2018, 23:30
darktux darktux está desconectado
Habitual
 
Fecha de Ingreso: 10-diciembre-2009
Versión: 11.4
Mensajes: 214
Agradecimientos: 4
Agradecido 2 Veces en 2 Mensajes
Poder de Credibilidad: 9
darktux está en el buen camino
Muchas gracias DiabloRojo por tu respuesta, voy a revisar el link, si logro solventar les comento luego los resultados.

Saludos.
Responder Citando
Respuesta

Marcadores


(0 miembros y 1 visitantes)
 
Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Script bash para crear varias carpetas de una sola vez asero12 Programación y Scripts 9 24-may-2014 20:33
novell client 2 para opensuse 12 jeffersonag83 Instalación y Actualizaciones 1 09-nov-2011 11:28
Usuarios de gráfica NVIDIA, probar este script [NUEVO] DiabloRojo Hardware 91 28-sep-2010 16:45
Script bash para tener el mezclador a gusto migtei FAQs, Manuales y Tutoriales 0 19-feb-2007 23:35
Parar e iniciar servicios en linux ubaloie FAQs, Manuales y Tutoriales 1 26-may-2006 07:31



Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook


La franja horaria es GMT +2. Ahora son las 19:47.
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.

Esta página está bajo una licencia de Creative Commons, salvo que no se indique lo contrario.
Creative Commons License

Valid CSS!

Diseño por:Designed by: vbdesigns.devbdesigns.de 
Contáctenos - ForoSUSE - Archivo - Declaración de Privacidad - Arriba