súper cómputo a bajo costo utilizando javascript
TRANSCRIPT
![Page 1: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/1.jpg)
Súper cómputo a bajo costo utilizando JavaScript
Mario García Valdez @mariogarciav
![Page 2: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/2.jpg)
Súper ComputoEs la utilización de computadoras con capacidades extraordinarias para la realización de investigación en diversas áreas del conocimiento.
![Page 3: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/3.jpg)
![Page 4: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/4.jpg)
![Page 5: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/5.jpg)
Worldwide LHC Computing Grid
➤ El Gran Colisionador de Hadrones (LHC) se construyó para probar la existencia del Bosón de Higgs.
➤ Los experimentos arrojan datos en cantidades sin precedentes.
➤ Los sensores arrojan 300 GByte/s.
➤ Después del filtrado quedan al rededor de 300 MByte/s.
➤ El proyecto genera 27 TB de datos al día.
➤ En 2012 consistía en 170 centros de computo en 36 países.
➤ En 2010 eran 200,000 núcleos y 150 petabytes de disco duro.
![Page 6: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/6.jpg)
➤ Es una aplicación que simula 60 partículas viajando alrededor del aro del LHC.
➤ Esta simulación se realiza para 100,000 vueltas.
➤ Ayuda a ajustar los componentes para mantener las órbitas en curso.
http://lhcathome.web.cern.ch/
![Page 7: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/7.jpg)
Berkeley Open Infrastructure for Network Computing (BOINC)
➤ Es un sistema an open-source para computación voluntaria y grid.
➤ La intención de este proyecto es obtener una capacidad de computación enorme utilizando computadores personales alrededor del mundo.
http://boinc.berkeley.edu/
![Page 8: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/8.jpg)
![Page 9: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/9.jpg)
![Page 10: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/10.jpg)
![Page 11: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/11.jpg)
![Page 12: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/12.jpg)
¿Súper Computadoras?
![Page 13: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/13.jpg)
¿Súper Computadoras de bajo costo?
http://www.nvidia.com/object/why-choose-tesla.html#sthash.5yLozfYP.dpuf
Tesla K80 GPU
➤ Desempeño de hasta 2.91 TFlops en doble precisión.
➤ Hasta 8.74 TFlops en precisión simple.
➤ Memoria interna de 24 GB.
➤ Aprox. $4000.00
➤ Con 10 tenemos medio Miztli
![Page 14: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/14.jpg)
¿Súper Computadoras de bajo costo? Un Cluster
![Page 15: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/15.jpg)
¿Súper Computadoras de bajo costo? Un Cluster
![Page 16: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/16.jpg)
Servicios Cloud - Free Tier
![Page 17: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/17.jpg)
Servicios Cloud - Free Tier / Low Cost
![Page 18: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/18.jpg)
Servicios Cloud - Free Tier
![Page 19: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/19.jpg)
Volunteer Computing
Un conjunto de herramientas que permiten a los ciudadanos donar ciclos de sus CPUs a aplicaciones que permiten la ejecución de algún experimento.
![Page 20: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/20.jpg)
Volunteer Computing
![Page 21: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/21.jpg)
Computación Voluntaria
➤ Los Voluntarios son anónimos.
➤ Como entidades anónimas no podemos reprenderlos o hacerlos responsables.
➤ Los voluntarios deben confiar en los proveedores de las aplicaciones.
➤ Después de todo bajaremos un programa que actuará como un malware.
![Page 22: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/22.jpg)
Es una heurística de búsqueda la cual imita el proceso de selección natural
COMPUTACIÓN EVOLUTIVA (PROBLEMA)
![Page 23: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/23.jpg)
Útiles cuando buscamos posibles soluciones en un espacio de búsqueda.
Cuando optimizamos.
![Page 24: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/24.jpg)
ONEMAX
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
![Page 25: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/25.jpg)
ONEMAX
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]ONEMAX ( ) 15
![Page 26: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/26.jpg)
ONEMAX
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]ONEMAX ( ) 15
ONEMAX ( )[ 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 10 10 ] 20
![Page 27: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/27.jpg)
ONEMAX
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]ONEMAX ( ) 15
ONEMAX ( )[ 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 10 10 ] 20
ONEMAX ( )[ 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 10 10 ] 11
![Page 28: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/28.jpg)
ONEMAX
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]ONEMAX ( ) 15
ONEMAX ( )[ 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 10 10 ] 20
ONEMAX ( )[ 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 10 10 ] 11 262 = 67,108,864
![Page 29: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/29.jpg)
ONEMAX
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
[ 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]ONEMAX ( ) 15
ONEMAX ( )[ 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 10 10 ] 20
ONEMAX ( )[ 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 10 10 ] 11
ONEMAX ( )[ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ] 26
262 = 67,108,864
![Page 30: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/30.jpg)
POBLACIÓN
[ 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 10 0 0 ]
[ 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
[ 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 10 10 ]
[ 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 10 10 ]
[ 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 10 0 0 ]
[ 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 10 10 ]
[ 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 10 10 ]
[ 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 10 10 ]
![Page 31: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/31.jpg)
EVALUACIÓN FUNCIÓN DE APTITUD = ONEMAX( )
[ 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 10 0 0 ]
[ 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
[ 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 10 10 ]
[ 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 10 10 ]
[ 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 10 0 0 ]
[ 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 ]
[ 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 10 ]
[ 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 10 10 ]
9
13
18
11
10
7
17
10
![Page 32: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/32.jpg)
SELECCIÓN
[ 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 10 0 0 ]
[ 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 10 10 ]
[ 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 10 10 ]
[ 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 10 10 ]
[ 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 10 0 0 ]
[ 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 ]
[ 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 0 0 10 ]
[ 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 10 10 ]
9 13
18
11
10
7
17
10
![Page 33: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/33.jpg)
CRUCE
[ 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 10 10 ] 18
17[ 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 0 0 0 10 ]
19
16
[1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 10 10]
[1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 10]
![Page 34: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/34.jpg)
MUTACIÓN
[1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 10 10]
[1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 10 10]
![Page 35: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/35.jpg)
NUEVA POBLACIÓN - GEN 2
[ 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 10 0 0 ]
[ 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 10 11 ]
[ 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 10 10 ]
[ 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 10 10 ]
[ 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 10 0 0 ]
[ 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 10 10 ]
[1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 10 10]
[ 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 10 ]
![Page 36: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/36.jpg)
NUEVA POBLACIÓN - GEN N
[ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ]
[ 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 10 11 ]
[ 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 10 10 ]
[ 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 10 10 ]
[1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 10 10]
[ 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 10 ]
[ 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 10 10 ]
[ 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 10 10 ]
![Page 37: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/37.jpg)
¿SÚPER CÓMPUTO EVOLUTIVO?
➤ Los algoritmos evolutivos son bochornosamente paralelizables.
➤ El costo de computo más elevado está en la función de aptitud.
➤ Algunos problemas requieren alto poder de procesamiento, incluso para problemas académicos.
➤ Por ejemplo: OneMax de 106 bits.
➤ Existen muchas variantes distribuidas del algoritmo:
➤ Multi-Islas
➤ Basados en Pool
![Page 38: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/38.jpg)
¿Y SI USAMOS EL NAVEGADOR?
➤ JAVA Applets
➤ Flash, ActionScript
➤ VBScript
➤ ActiveX
![Page 39: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/39.jpg)
PROPUESTA
➤ Una solución basada completamente en JavaScript, para implementar experimentos de cómputo evolutivo voluntario.
![Page 40: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/40.jpg)
JAVASCRIPT¿ ?
PROPUESTA
JAVA C++
FORTRANMATLAB
C
![Page 41: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/41.jpg)
JAVASCRIPT
➤ En todos lados.
➤ No requiere instalación de alguna VM, Plugin o software.
➤ Relativamente rápido.
➤ Compilador JIT para V8.
➤ En todo el stack, gracias a node.js.
➤ Buenas herramientas de desarrollo, depuradores, editores, gestores de bibliotecas, una comunidad activa.
➤ Los Web Workers de HTML 5 permiten explotar los hilos del CPU.
➤ Ciudadano de primera en Heroku, Azure, Openshift, etc.
![Page 42: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/42.jpg)
JAVASCRIPT
➤ Inmaduro para cómputo científico, no hay muchas bibliotecas.
➤ El método de generación de números Random varía según el navegador.
➤ La precisión y los cálculos también pueden variar.
➤ Poca aceptación por parte de la comunidad, se piensa en el lenguaje solo para validar páginas Web.
➤ No es Java, C, Fortran, Python, R o Matlab.
![Page 43: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/43.jpg)
![Page 44: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/44.jpg)
A PROBAR
➤ Escalabilidad
➤ Heterogéneo
➤ Tolerancia a fallos
➤ Adaptativo
➤ Desempeño
➤ Comportamiento de los Voluntarios
![Page 45: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/45.jpg)
NodEO
![Page 46: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/46.jpg)
NodEO
function Chromosome(string,fitness){ this.string = string; this.fitness = fitness; // functions this.invert = invert; this.mutate = mutate; this.crossover=crossover; this.reproduction=reproduction; }
![Page 47: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/47.jpg)
NodEO
eo = new Nodeo( { population_size: population_size, chromosome_size: chromosome_size, fitness_func: trap_fitness } );
![Page 48: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/48.jpg)
NodEO
(function do_ea() {
eo.generation();
generation_count++;
if ( (generation_count % 100 === 0) ) {
do_periodic_stuff()
}
if( (eo.fitness_of[eo.population[0]] < traps*conf.fitness.b )
&& ( generation_count*conf.population_size < conf.max_evaluations)) {
setTimeout(do_ea, 5);
} else {
we_are_done();
}
})();
![Page 49: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/49.jpg)
![Page 50: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/50.jpg)
NodIO: Computación Voluntaria utilizando NodEO
➤ Un servidor REST
➤ Varias rutas para almacenar y recuperar información.
➤ Utiliza JSON como formato de comunicación cliente-servidor.
➤ Sobre el EA:
PUT, GET chromosome, GET random
➤ Sobre el experimento:
Generación Actual, Mejor cromosoma
➤ Bitácora
➤ Ejecuta varios experimentos.
![Page 51: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/51.jpg)
NodIO: Computación Voluntaria utilizando NodEO
➤ Muchos Clientes, cada uno:
➤ Incluye un algoritmo en NodEO
➤ Despliega gráficas e información del experimento.
➤ El algoritmo puede considerarse una isla, que crea su propia población.
➤ Cada 100 generaciones envía al mejor cromosoma al server.
➤ Después del envío, solicita un cromosoma aleatorio.
➤ Si se encuentra el cromosoma óptimo el experimento termina.
![Page 52: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/52.jpg)
NodIO-W2
➤ Los clientes utilizan HTML Web Workers.
➤ Re-inician el experimento al encontrar un óptimo.
NodEO
![Page 53: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/53.jpg)
NodEO-W2
![Page 54: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/54.jpg)
IPS VS TIEMPO ONEMAX
![Page 55: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/55.jpg)
FUNCIÓN RASTRIGIN
![Page 56: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/56.jpg)
FUNCIÓN RASTRIGIN
![Page 57: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/57.jpg)
WEIBULL FIT GEV FIT
![Page 58: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/58.jpg)
![Page 59: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/59.jpg)
![Page 60: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/60.jpg)
DETALLES DE LA IMPLEMANTACIÓN RASTRIGIN PESADA➤ Randomize
➤ Matlab y Java utilizan la biblioteca Java Randomizer para generar Gausianas pseudo aleatorias de precisión double.
➤ Se utilizó random-js ya que la implementación de Math.random() tiene inconsistencias y es no determinista.
➤ Funciones de timing.
➤ Para evaluar el tiempo de ejecución a veces se utiliza la clase Date pero su resolución llega a los milisegundos.
➤ Para las medidas se utilizaron dos funciones, para node.js la función nativa process.hrtime() nanosegundos y Performance.now() con microsegundos. (Firefox y Chrome).
➤ Herramientas Disponibles:
➤ npm, debupuradores, log (winston), monitores de red, monitoreo de Web Workers.
➤ Tipos de datos:
➤ Números flotantes con una precisión de 64 bits que implementan parcialmente la biblioteca StrictMath de Java.
➤ Si se requiere de mayor precisión se puede utilizar math.js para matrices y big numbers.
![Page 61: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/61.jpg)
LINKS
CÓDIGO FUENTE Y ARTICULOS https://github.com/JJ/modeling-volunteer-computing.https://github.com/JJ/splash-volunteer
Implementación temporal (fork) con Web Workershttps://github.com/mariosky/splash-volunteer
Comunidad JavaScript Tijuana:http://tijuanajs.org/
[email protected] @mariogarciav
![Page 62: Súper cómputo a bajo costo utilizando JavaScript](https://reader034.vdocuments.pub/reader034/viewer/2022042611/589e15ed1a28ab605b8b497f/html5/thumbnails/62.jpg)
GRACIAS POR SU ATENCIÓN