[Madrid-pm] perl threads

mipassa mipassat en gmail.com
Mie Oct 13 14:03:51 PDT 2010


Cierto todo lo que dices. Pero mi problema podría tratar por ejemplo de
sondear estado de 100K equipos, que mientras llegas o no, te da timeout, y
demás tiempo muertos, estas pasando a los otros 99.999. La cosa es llenar
esos tiempos muertos con algo/thread ocioso y que no haya que estar creando
continuamente costosos hijos/forks/procesos

Thanks again por vuestras sabias opiniones

-----Mensaje original-----
De: madrid-pm-bounces+mipassat=gmail.com en pm.org
[mailto:madrid-pm-bounces+mipassat=gmail.com en pm.org] En nombre de Joaquín
Ferrero
Enviado el: miércoles, 13 de octubre de 2010 22:53
Para: Lista de correo de Madrid Perl Mongers
Asunto: Re: [Madrid-pm] perl threads

El 13/10/10 20:59, mipassa escribió:
> Hola,
>
> Mi pega es que mientras que con perl lanzo 10 procesos (por poner un
número)
> para hacer 10 "cosas" en un intervalo de tiempo, aprovechando al máximo
los
> recursos de la máquina, para ese mismo periodo con Java en esa misma
> máquina, me creo que puedo lanzar 100K threads que me hacen 100mil "cosas"
> :(

¿Cien mil "cosas"?

¿Es que, acaso, tienes, "cien mil" núcleos de procesador?

¿Qué sentido tiene arrancar un montón de threads si tienen que esperarse
unos a otros para que les atienda el procesador?

Al final, con tanto cambio de contexto, tienes menos rendimiento que si lo
hicieras de forma secuencial.

Yo, como máximo, monté un "cluster" que sumaba 32Gb, 8 procesadores con dos
núcleos cada uno, así que, por mucho que yo quisiera, nunca habría más de 16
procesos activos de forma simultánea (y uno de ellos, al menos, atendiendo
al sistema operativo).

Mi problema era procesar ficheros muy grandes, que, de forma normal (en un
solo procesador), tardaba 100 minutos. Pero como el problema se podía
dividir, lo hice en 16 partes cada uno. Al final, el tiempo final no era
exactamente 1/16, sino mayor, algo así como 1/10 del tiempo inicial.

usé Parallel::ForkManager;  # nada más, algo muy sencillo

En los problemas en los cuales hay "cien mil" elementos, queda muy bonito
modelizar el problema en torno a objetos que tienen su "vida propia" (estoy
pensando en los MMORPG), pero eso mismo se puedo hacer de otras formas, que
reparta mejor la carga entre los procesadores disponibles.

IMO, por supuesto.

-- 
JF^D
_______________________________________________
Madrid-pm mailing list
Madrid-pm en pm.org
http://mail.pm.org/mailman/listinfo/madrid-pm



Más información sobre la lista de distribución Madrid-pm