SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
Súper cómputo a bajo costo
utilizando JavaScript
Mario García Valdez
@mariogarciav
Súper Computo
Es la utilización de computadoras con
capacidades extraordinarias para la
realización de investigación en diversas
áreas del conocimiento.
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.
➤ 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/
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/
¿Súper Computadoras?
¿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
¿Súper Computadoras de bajo costo? Un Cluster
¿Súper Computadoras de bajo costo? Un Cluster
Servicios Cloud - Free Tier
Servicios Cloud - Free Tier / Low Cost
Servicios Cloud - Free Tier
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.
Volunteer Computing
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.
Es una heurística de búsqueda la cual imita el proceso de selección natural
COMPUTACIÓN EVOLUTIVA (PROBLEMA)
Útiles cuando buscamos posibles soluciones en un espacio de búsqueda.
Cuando optimizamos.
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 ]
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
[ 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 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
[ 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
26
2 = 67,108,864
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
26
2 = 67,108,864
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 ]
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
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
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]
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]
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 ]
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 ]
¿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
¿Y SI USAMOS EL NAVEGADOR?
➤ JAVA Applets
➤ Flash, ActionScript
➤ VBScript
➤ ActiveX
PROPUESTA
➤ Una solución basada completamente en JavaScript, para
implementar experimentos de cómputo evolutivo voluntario.
JAVASCRIPT¿ ?
PROPUESTA
JAVA C++
FORTRAN
MATLAB
C
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.
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.
A PROBAR
➤ Escalabilidad
➤ Heterogéneo
➤ Tolerancia a fallos
➤ Adaptativo
➤ Desempeño
➤ Comportamiento de los Voluntarios
NodEO
NodEO
function Chromosome(string,fitness){

this.string = string;

this.fitness = fitness;



// functions

this.invert = invert;

this.mutate = mutate;

this.crossover=crossover;

this.reproduction=reproduction;

}
NodEO
eo = new Nodeo( {

population_size: population_size,

chromosome_size: chromosome_size,

fitness_func: trap_fitness } );
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();
}
})();
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.
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.
NodIO-W2
➤ Los clientes utilizan HTML Web Workers.
➤ Re-inician el experimento al encontrar un óptimo.
NodEO
NodEO-W2
IPS VS TIEMPO ONEMAX
FUNCIÓN RASTRIGIN
FUNCIÓN RASTRIGIN
WEIBULL FIT GEV FIT
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.
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 Workers
https://github.com/mariosky/splash-volunteer
Comunidad JavaScript Tijuana:
http://tijuanajs.org/
mariosky@gmail.com
@mariogarciav
GRACIAS POR SU ATENCIÓN

Más contenido relacionado

Similar a Súper cómputo a bajo costo utilizando JavaScript

Instalación de SQL 2005 & SQL Management Studio
Instalación de SQL 2005 & SQL Management StudioInstalación de SQL 2005 & SQL Management Studio
Instalación de SQL 2005 & SQL Management Studio
Carlos Arturo
 
Instalación de sql 2005 %26 sql management studio
Instalación de sql 2005 %26 sql management studioInstalación de sql 2005 %26 sql management studio
Instalación de sql 2005 %26 sql management studio
Young Hyun
 
Taller de enteros general
Taller de enteros general Taller de enteros general
Taller de enteros general
Nick Lujan
 
23. c comb-ascensor_monedas
23. c comb-ascensor_monedas23. c comb-ascensor_monedas
23. c comb-ascensor_monedas
MiguelBG11
 
23. c comb-ascensor_monedas
23. c comb-ascensor_monedas23. c comb-ascensor_monedas
23. c comb-ascensor_monedas
ClauFdzSrz
 

Similar a Súper cómputo a bajo costo utilizando JavaScript (20)

Ejemplos de-simulacion-manual2
Ejemplos de-simulacion-manual2Ejemplos de-simulacion-manual2
Ejemplos de-simulacion-manual2
 
El desarrollo de plantaciones forestales, un negocio rentable para el gobiern...
El desarrollo de plantaciones forestales, un negocio rentable para el gobiern...El desarrollo de plantaciones forestales, un negocio rentable para el gobiern...
El desarrollo de plantaciones forestales, un negocio rentable para el gobiern...
 
Presentación RACHEL RODRIGUEZ.pdf
Presentación RACHEL RODRIGUEZ.pdfPresentación RACHEL RODRIGUEZ.pdf
Presentación RACHEL RODRIGUEZ.pdf
 
Grafos&Digrafos
Grafos&DigrafosGrafos&Digrafos
Grafos&Digrafos
 
Instalación de SQL 2005 & SQL Management Studio
Instalación de SQL 2005 & SQL Management StudioInstalación de SQL 2005 & SQL Management Studio
Instalación de SQL 2005 & SQL Management Studio
 
Instalación de sql 2005 %26 sql management studio
Instalación de sql 2005 %26 sql management studioInstalación de sql 2005 %26 sql management studio
Instalación de sql 2005 %26 sql management studio
 
Taller de enteros general
Taller de enteros general Taller de enteros general
Taller de enteros general
 
Sistema combinacional no especificado(ascensor,monedas)
Sistema combinacional no especificado(ascensor,monedas)Sistema combinacional no especificado(ascensor,monedas)
Sistema combinacional no especificado(ascensor,monedas)
 
PROBLEMA ASCENSOR
PROBLEMA ASCENSORPROBLEMA ASCENSOR
PROBLEMA ASCENSOR
 
23. c comb-ascensor_monedas
23. c comb-ascensor_monedas23. c comb-ascensor_monedas
23. c comb-ascensor_monedas
 
23. c comb-ascensor_monedas
23. c comb-ascensor_monedas23. c comb-ascensor_monedas
23. c comb-ascensor_monedas
 
Combinación monedas
Combinación monedasCombinación monedas
Combinación monedas
 
23. c comb-ascensor_monedas
23. c comb-ascensor_monedas23. c comb-ascensor_monedas
23. c comb-ascensor_monedas
 
sistema combinacional-ascensor_monedas
sistema combinacional-ascensor_monedassistema combinacional-ascensor_monedas
sistema combinacional-ascensor_monedas
 
23. c comb-ascensor_monedas
23. c comb-ascensor_monedas23. c comb-ascensor_monedas
23. c comb-ascensor_monedas
 
Cálculo de esfuerzos y asentamientos [ahpe]
Cálculo de esfuerzos y asentamientos   [ahpe]Cálculo de esfuerzos y asentamientos   [ahpe]
Cálculo de esfuerzos y asentamientos [ahpe]
 
Trabajo sismos ppt (1)
Trabajo sismos ppt (1)Trabajo sismos ppt (1)
Trabajo sismos ppt (1)
 
Plan de negocios sobre la distribucion
Plan de negocios sobre la distribucionPlan de negocios sobre la distribucion
Plan de negocios sobre la distribucion
 
¿Cómo los datos nos ayudan a revolucionar una industria de 12,000 años?
¿Cómo los datos nos ayudan a revolucionar una industria de 12,000 años?¿Cómo los datos nos ayudan a revolucionar una industria de 12,000 años?
¿Cómo los datos nos ayudan a revolucionar una industria de 12,000 años?
 
Criade caracolesextensivo
Criade caracolesextensivoCriade caracolesextensivo
Criade caracolesextensivo
 

Último

El Genoma Humano, Características, Definición, ETC
El Genoma Humano, Características, Definición, ETCEl Genoma Humano, Características, Definición, ETC
El Genoma Humano, Características, Definición, ETC
J0S3G4LV1S
 
Flores Galindo, A. - La ciudad sumergida. Aristocracia y plebe en Lima, 1760-...
Flores Galindo, A. - La ciudad sumergida. Aristocracia y plebe en Lima, 1760-...Flores Galindo, A. - La ciudad sumergida. Aristocracia y plebe en Lima, 1760-...
Flores Galindo, A. - La ciudad sumergida. Aristocracia y plebe en Lima, 1760-...
frank0071
 
Terapia Cognitivo Conductual CAPITULO 2.
Terapia Cognitivo Conductual CAPITULO 2.Terapia Cognitivo Conductual CAPITULO 2.
Terapia Cognitivo Conductual CAPITULO 2.
ChiquinquirMilagroTo
 
DILATADORES ESOFAGICOS estenosis benignas (1).pptx
DILATADORES ESOFAGICOS estenosis benignas (1).pptxDILATADORES ESOFAGICOS estenosis benignas (1).pptx
DILATADORES ESOFAGICOS estenosis benignas (1).pptx
GabyCrespo6
 
Soporte vital basico maniobras de soporte vital basico
Soporte vital basico maniobras de soporte vital basicoSoporte vital basico maniobras de soporte vital basico
Soporte vital basico maniobras de soporte vital basico
NAYDA JIMENEZ
 
IAAS- EPIDEMIOLOGIA. antisepcsia, desinfección, epp
IAAS-  EPIDEMIOLOGIA. antisepcsia, desinfección, eppIAAS-  EPIDEMIOLOGIA. antisepcsia, desinfección, epp
IAAS- EPIDEMIOLOGIA. antisepcsia, desinfección, epp
CatalinaSezCrdenas
 
Althusser, Louis. - Ideología y aparatos ideológicos de Estado [ocr] [2003].pdf
Althusser, Louis. - Ideología y aparatos ideológicos de Estado [ocr] [2003].pdfAlthusser, Louis. - Ideología y aparatos ideológicos de Estado [ocr] [2003].pdf
Althusser, Louis. - Ideología y aparatos ideológicos de Estado [ocr] [2003].pdf
frank0071
 

Último (20)

El Genoma Humano, Características, Definición, ETC
El Genoma Humano, Características, Definición, ETCEl Genoma Humano, Características, Definición, ETC
El Genoma Humano, Características, Definición, ETC
 
1890 –7 de junio - Henry Marmaduke Harris obtuvo una patente británica (Nº 88...
1890 –7 de junio - Henry Marmaduke Harris obtuvo una patente británica (Nº 88...1890 –7 de junio - Henry Marmaduke Harris obtuvo una patente británica (Nº 88...
1890 –7 de junio - Henry Marmaduke Harris obtuvo una patente británica (Nº 88...
 
Flores Galindo, A. - La ciudad sumergida. Aristocracia y plebe en Lima, 1760-...
Flores Galindo, A. - La ciudad sumergida. Aristocracia y plebe en Lima, 1760-...Flores Galindo, A. - La ciudad sumergida. Aristocracia y plebe en Lima, 1760-...
Flores Galindo, A. - La ciudad sumergida. Aristocracia y plebe en Lima, 1760-...
 
Terapia Cognitivo Conductual CAPITULO 2.
Terapia Cognitivo Conductual CAPITULO 2.Terapia Cognitivo Conductual CAPITULO 2.
Terapia Cognitivo Conductual CAPITULO 2.
 
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...
 
DILATADORES ESOFAGICOS estenosis benignas (1).pptx
DILATADORES ESOFAGICOS estenosis benignas (1).pptxDILATADORES ESOFAGICOS estenosis benignas (1).pptx
DILATADORES ESOFAGICOS estenosis benignas (1).pptx
 
SESION 3º caracteristicas de los seres vivos.pdf
SESION 3º caracteristicas de los seres vivos.pdfSESION 3º caracteristicas de los seres vivos.pdf
SESION 3º caracteristicas de los seres vivos.pdf
 
Soporte vital basico maniobras de soporte vital basico
Soporte vital basico maniobras de soporte vital basicoSoporte vital basico maniobras de soporte vital basico
Soporte vital basico maniobras de soporte vital basico
 
ATENCIÓN DEL TRABAJO DE PARTO, GINECOLOGIA Y OBSTETRICIA
ATENCIÓN DEL TRABAJO DE PARTO, GINECOLOGIA Y OBSTETRICIAATENCIÓN DEL TRABAJO DE PARTO, GINECOLOGIA Y OBSTETRICIA
ATENCIÓN DEL TRABAJO DE PARTO, GINECOLOGIA Y OBSTETRICIA
 
Pelos y fibras. Criminalistica pelos y fibras
Pelos y fibras. Criminalistica pelos y fibrasPelos y fibras. Criminalistica pelos y fibras
Pelos y fibras. Criminalistica pelos y fibras
 
Homo Ergaster. Evolución y datos del hominido
Homo Ergaster. Evolución y datos del hominidoHomo Ergaster. Evolución y datos del hominido
Homo Ergaster. Evolución y datos del hominido
 
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptx
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptxMapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptx
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptx
 
Ecuaciones Diferenciales de Primer Orden
Ecuaciones Diferenciales de Primer OrdenEcuaciones Diferenciales de Primer Orden
Ecuaciones Diferenciales de Primer Orden
 
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptx
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptxEl Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptx
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptx
 
PRESENTACION PRE-DEFENSA PROYECTO I.pptx
PRESENTACION PRE-DEFENSA PROYECTO I.pptxPRESENTACION PRE-DEFENSA PROYECTO I.pptx
PRESENTACION PRE-DEFENSA PROYECTO I.pptx
 
La Célula, unidad fundamental de la vida
La Célula, unidad fundamental de la vidaLa Célula, unidad fundamental de la vida
La Célula, unidad fundamental de la vida
 
IAAS- EPIDEMIOLOGIA. antisepcsia, desinfección, epp
IAAS-  EPIDEMIOLOGIA. antisepcsia, desinfección, eppIAAS-  EPIDEMIOLOGIA. antisepcsia, desinfección, epp
IAAS- EPIDEMIOLOGIA. antisepcsia, desinfección, epp
 
CASO CLÍNICO INFECCIONES Y TUMORES.pptx
CASO CLÍNICO INFECCIONES Y TUMORES.pptxCASO CLÍNICO INFECCIONES Y TUMORES.pptx
CASO CLÍNICO INFECCIONES Y TUMORES.pptx
 
Althusser, Louis. - Ideología y aparatos ideológicos de Estado [ocr] [2003].pdf
Althusser, Louis. - Ideología y aparatos ideológicos de Estado [ocr] [2003].pdfAlthusser, Louis. - Ideología y aparatos ideológicos de Estado [ocr] [2003].pdf
Althusser, Louis. - Ideología y aparatos ideológicos de Estado [ocr] [2003].pdf
 
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETC
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETCREINO FUNGI: CONCEPTO, CARACTERISTICAS, ETC
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETC
 

Súper cómputo a bajo costo utilizando JavaScript

  • 1. Súper cómputo a bajo costo utilizando JavaScript Mario García Valdez @mariogarciav
  • 2. Súper Computo Es la utilización de computadoras con capacidades extraordinarias para la realización de investigación en diversas áreas del conocimiento.
  • 3.
  • 4.
  • 5. 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.
  • 6. ➤ 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/
  • 7. 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/
  • 8.
  • 9.
  • 10.
  • 11.
  • 13. ¿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
  • 14. ¿Súper Computadoras de bajo costo? Un Cluster
  • 15. ¿Súper Computadoras de bajo costo? Un Cluster
  • 16. Servicios Cloud - Free Tier
  • 17. Servicios Cloud - Free Tier / Low Cost
  • 18. Servicios Cloud - Free Tier
  • 19. 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.
  • 21. 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.
  • 22. Es una heurística de búsqueda la cual imita el proceso de selección natural COMPUTACIÓN EVOLUTIVA (PROBLEMA)
  • 23. Útiles cuando buscamos posibles soluciones en un espacio de búsqueda. Cuando optimizamos.
  • 24. 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 ]
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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 26 2 = 67,108,864
  • 29. 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 26 2 = 67,108,864
  • 30. 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 ]
  • 31. 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
  • 32. 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
  • 33. 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]
  • 34. 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]
  • 35. 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 ]
  • 36. 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 ]
  • 37. ¿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
  • 38. ¿Y SI USAMOS EL NAVEGADOR? ➤ JAVA Applets ➤ Flash, ActionScript ➤ VBScript ➤ ActiveX
  • 39. PROPUESTA ➤ Una solución basada completamente en JavaScript, para implementar experimentos de cómputo evolutivo voluntario.
  • 41. 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.
  • 42. 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.
  • 43.
  • 44. A PROBAR ➤ Escalabilidad ➤ Heterogéneo ➤ Tolerancia a fallos ➤ Adaptativo ➤ Desempeño ➤ Comportamiento de los Voluntarios
  • 45. NodEO
  • 46. NodEO function Chromosome(string,fitness){
 this.string = string;
 this.fitness = fitness;
 
 // functions
 this.invert = invert;
 this.mutate = mutate;
 this.crossover=crossover;
 this.reproduction=reproduction;
 }
  • 47. NodEO eo = new Nodeo( {
 population_size: population_size,
 chromosome_size: chromosome_size,
 fitness_func: trap_fitness } );
  • 48. 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(); } })();
  • 49.
  • 50. 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.
  • 51. 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.
  • 52. NodIO-W2 ➤ Los clientes utilizan HTML Web Workers. ➤ Re-inician el experimento al encontrar un óptimo. NodEO
  • 54. IPS VS TIEMPO ONEMAX
  • 58.
  • 59.
  • 60. 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.
  • 61. 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 Workers https://github.com/mariosky/splash-volunteer Comunidad JavaScript Tijuana: http://tijuanajs.org/ mariosky@gmail.com @mariogarciav
  • 62. GRACIAS POR SU ATENCIÓN