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: [email protected] [mailto:[email protected]] 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 [email protected] http://mail.pm.org/mailman/listinfo/madrid-pm _______________________________________________ Madrid-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/madrid-pm
