31. La distribución se realiza entre cliente/servidor, y también podría hacerse entre diferentes servidores.
32. Las pruebas nos permitirán establecer su factibilidad, y el entorno más favorable para la misma, así como una línea base de prestaciones. Se busca logo molón. Razón, aquí.
Foto de J. Bakker Ijmuiden en http://www.flickr.com/photos/joost-ijmuiden/3613829273/in/photostream/
Un sólo ordenador/procesador, secuencial, o incluso si es paralelo usando una configuración homogénea, estática. Imagen de http://www.flickr.com/photos/wizzer/5357865167/ por wizzer2801
Casi cualquier entorno que no sea ese: lenguajes no tradicionales, soportes no tradicionales (una cámara de fotos, por ejemplo, o incluso un teléfono móvil), computación basada en hebras, P2P, asíncrona.. Foto de .m for mathijs en http://www.flickr.com/photos/matthijs/3514892055/.
Foto por The U. S. Army http://www.flickr.com/photos/soldiersmediacenter/4685688778/ Por supuesto, también hay una razón importante: publicar trabajos. Igual la más importante.
Algoritmo genético que usa a Google para hacer cálculos. Va a ser más lento, porque hay que tener en cuenta la capacidad de la red, pero es cuestión de aprovecharlo. Ojo, esto es Perl, es para hombres de pelo en pecho. Y mujeres de pecho en pecho.
En este caso, lo que se hace es que se usa el mecanismo asíncrono de AJAX para enviar un individuo a un servidor. El servidor responde con otro, escogido entre los mejores.
JavaScript está construido alrededor de una serie de estándares ECMA. En realidad, hay otras formas de interaccionar de forma asíncrona entre el navegador y el servidor; ahora mismo, ésta es la más popular.
Se podría haber usado un entorno diferente. En realidad, tampoco se usa excesivamente RoR y puede ser incluso una rémora a la hora de conseguir altas prestaciones. La gran ventaja que tiene es la integración con ajax. Es muy fácil hacer llamadas AJAX. Pero quizás hoy lo haría en otro lenguaje: Perl o usando el Google Web Toolkit. También se podría usar un entorno totalmente diferente: Microsoft .Net, por ejemplo, o Ruby. Pero no sería tan ubicuo.
En principio, se podría usar otro cualquiera. De hecho, es posible que lo cambiemos, según el “peso” de la aplicación vaya del servidor al cliente. Pero el desarrollo en RoR es rápido, y tiene una comunidad activa
En mi casa, con mi ordenador de sobremesa, y dos portátiles, el mío y el que le compramos a Lourdes, dos VAIO.
No es como para tirar cohetes, pero algo se consigue. El problema es que RoR (mongrel) tiene una sola hebra de salida, y en estas condiciones se producen bloqueos para servir al cliente los resultados. Tampoco está optimizado en este sentido. Está en modo debug y no producción (aunque esto afectaría sobre todo a las prestaciones por nodo, no al escalado). En pruebas hechas con clusters de nodos se han conseguido mejores resultados, pero la aplicación no está hecha para trabajar con muchos nodos clientes. Así que hay que plantearse un cambio en el servidor, o en la distribución cliente-servidor
Microsiervos lo publicó aquí: http://www.microsiervos.com/archivo/ordenadores/experimento-computacion-distribuida.html
Objects are shared, can't be deleted. Graph link values are not, and depend on the permissions you have granted them. By default, just the creator can do anything on them.That's why they are shown in blue. Since the “about” tag belongs to fluiddb, once it's created it can't be changed (write-only)
Take into account that the population must remain constant, and that it's ensured that every member in the population is unique. If the newly generated chromosome is repeated, it is dropped. The new chromosomes do have already its fitness attached, but in pinciple this is not needed; one client could do the evolutionary operators, and another the evaluation.
It's free as in freedom, not as in free beer. Scientific software should be free from the get go, becasue it encourages reproctibility Image from: http://www.flickr.com/photos/zarwan/79822984/sizes/l/in/photostream/ It's the Perl camel drinking from the fluid evolutionary algorithm. Take into account that the concept of population does not really apply here. We have a “current” population, and also a “local” population, and a number of evaluations before each immigration.
Since individuals are unique, the number of them added each generation goes down, which is only obvious. It could be done some other way, but it would involve many more database queries. It never goes down to 0, anyways.
This is a sequential run; take into account that the number of evaluations is rather low; even so, it reaches the maximum due to high diversity in the pool
Due to the alpha state of FluidDB and the concurrency problems, we have used sequential runs, with the second run starting after the first.The second gets random chromosomes from the pool, which increasingly mean that former solutions are reused. Esta es una de las ventajas de usar un sistema en el cual todas las soluciones son persistentes; siempre se va mejorando sobre lo ya obtenido. Lo único que tienes que preocuparte es de etiquetar correctamente cuales son las mejores soluciones.
Batch size is 2 in this case; two are taken from the current population and put back into it (if new). Since inmigration is much more frequent, improvement is faster and steadier. This probably means that making more fluidinfo queries increases probability of obtaining good results
Describe basic working principles of Dropbox as a free file synchronization service, how it monitors certain files and how they are copied when modifed under its own schedule. It's got a permission system that regulates who's got access to which resources; it's usually done per directory, and you can also make directory results publicly available.
Every node runs independently, although they are started (roughly) at the same time. After an appointed number of generations, an individual (the best) is logged into the common directory, and another one is taken. A file with the total number of evaluations is also created, and the sum of all evaluations is checked as a termination condition. To speed up processing and reduce overhead speeding up synchronization, the individual is codified into the filename, so that the only thing that is read is the directory, not the content of the file itself. We use different kinds of codifications depending on the chromosome length, but lengths of several hundreds are not a problem. As it can be seen, the fitness is also codified into the name.