Navegando por
Categoría: Computación Distribuida

Mejoras a la sección de Tareas de BOINC completadas en mi página web y mi posición actual en el reto de [email protected]

Mejoras a la sección de Tareas de BOINC completadas en mi página web y mi posición actual en el reto de [email protected]

Hola a todos,

Ayer en la tarde estuve trabajando en una opción para que se pueda escoger una fecha y equipo para ver las tareas terminadas en mi sección de Tareas terminadas de BOINC en mi página web.

El resultado es el siguiente:

Tareas terminadas de BOINC 1

Ahora puedes, por ejemplo, seleccionar la fecha de hoy para ver las tareas que he terminado hoy para mi máquina AMD Ryzen y obtendrás lo siguiente:

Tareas terminadas de BOINC 2

Aunque no soy experto en CSS ni HTML, he logrado hacer esto para el disfrute de todos.

El código se encuentra en el repositorio de BOINCToWeb en GitHub el cual puedes ver presionando aquí.

¡Posición #8 en el reto de [email protected]!

Así es. Actualmente me encuentro en la posición #8 en el reto de [email protected], como podrán apreciar a continuación:

Posición Cosmology@Home

Entonces, por eso hice la sección de tareas terminadas en mi página web, para que así la gente vea lo que he contribuido a los proyectos y también porque a veces me preguntan cuales son los equipos que uso para procesar este tipo de tareas 🙂.

¡Eso es todo!

Nueva competencia de BOINC: [email protected] – Instalando VirtualBox y configurando el proyecto

Nueva competencia de BOINC: [email protected] – Instalando VirtualBox y configurando el proyecto

Hola a todos,

En el día de ayer, comenzó una nueva competencia de BOINC para le proyecto [email protected] La competencia fue creada por el equipo Gridcoin, en el cual participo:

Competencia Cosmology@Home

Procedí a añadir mis máquinas al proyecto, pero me dí cuenta que me hacía falta instalar VirtualBox:

Virtualbox no instalado

Así que instalé y configuré el proyecto para poder participar del mismo. En este post les hablaré sobre ese proceso:

Instalando VirtualBox

1. Primero, iremos a la página de VirtualBox, https://virtualbox.org y haremos click en el botón grande que dice «Download VirtualBox»:

Descargando Virtualbox 1

2. Como estoy usando Windows, descargaré esa versión:

Descargando Virtualbox 2

3. Presionamos «Save»:

Descargando Virtualbox 3

4. Y cuando la descarga termine, presionamos «Run»:

Descargando Virtualbox 4

5. El proceso de instalación comenzará. Presionamos «Next»:

Instalando Virtualbox 1

6. Dejaremos todo como está y presionamos «Next»:

Instalando Virtualbox 2

7. Nuevamente, presionamos «Next»:

Instalando Virtualbox 3

8. Ahora, hacemos click en «Yes»:

Instalando Virtualbox 4

9. Ahora en «Install»:

Instalando Virtualbox 5

10. Nos preguntará si deseamos instalar algunos drivers. Le daremos «Install:»

Instalando Virtualbox 6

11. Cuando la instalación termine, quitaremos la marca del recuadro que dice iniciar VirtualBox y presionamos «Finish»:

Instalando Virtualbox 7

Configurando el proyecto:

Recomiendo seguir estos pasos si tu equipo se vuele algo inestable o no responde bien. Este proyecto es intenso, así que sigue estos pasos para mejorar la estabilidad de tu sistema. Si la computadora sólamente estará ejecutando tareas, entonces no es necesario pues queremos maximizar el uso de nuestros recursos. De todas formas, aquí estan los pasos de configuración. La configuración inicial se encuentra en la sección de FAQ de [email protected]. Sí tuve que usarla en mi equipo AMD Ryzen, así que primero verifica si necesitas la configuración. Si todo funciona bien, puedes obviar esta sección.

Pasos para aplicar la configuración (Usé como ejemplo una de mis máquina Intel i7):

1. Ve a la sección de limitar el CPU del FAQ de [email protected] y copia la plantilla de configuración que se muestra:

Configurando Cosmology@Home 1

2. Abre tu editor favorito de texto y pega la plantilla. Luego, cambia el número en la sección <avg_ncpus> para especificar cuantos hilos de tu procesador quieres usar:

Configurando Cosmology@Home 2

3. Guarda la configuración en la carpeta del proyecto de [email protected] Si tienes BOINC instalado sin alterar la ubicación de sus carpetas, entonces la misma se encuentra en C:\ProgramData\BOINC\projects\www.cosmologyathome.org. Guarda el archivo como app_config.xml:

Configurando Cosmology@Home 3

4. Dependiendo del editor que usaste, verás que ahora el archivo de texto idetifica con color sus partes:

Configurando Cosmology@Home 4

Y eso es todo en esta parte. Ahora, probaremos la instalación y configuración.

Probando la instalación y configuración

Ahora, probaremos la instalación y configuración. Primero, tenemos que subir BOINC (ciérralo y vuélvelo a abrir si estaba corriendo). Luego, seleccionaremos el proyecto [email protected] le daremos a «Update» :

Configurando Cosmology@Home 5

Verás en el log que se están descargando tareas:

Configurando Cosmology@Home 6

Y que están corriendo:

Configurando Cosmology@Home 7

Puedes también verificar en VirtualBox que la máquina virtual de la tarea está corriendo:

Virtualbox 1

Y así se ve el uso del procesador de la máquina que usé para hacer este tutorial:

CPU Task Manager Cosmology@Home

Eventualmente, en esta máquina subí el uso de CPU a 8 para que use todos los recursos. Donde único he aplicado esta configuración es en mi equipo que tiene un procesador AMD Ryzen 7 2700X.

Si seguiste esta guía y estás corriendo tareas de [email protected], ¡Felicidades! ¡Y mucha suerte en la competencia!

Actualmente me encuentro en la posición #11 😁

Posición 11 en el proyecto Cosmology@Home

También, Estuve trabajando en una sección de mi página web donde pueden ver las tareas que he terminado de procesar:

Tareas Terminadas BOINC

Esto requirió algo de programación en mi herramienta BOINCToWeb para lograr esa nueva sección. Luego les hablaré más de los cambios realizados al código.

Y recuerden que también pueden ver las tareas que estoy ejecutando actualmente presionando aquí:

Tareas corriendo BOINC

¡Eso es todo!

Scripts y herramienta actualizada para mostrar mis tareas de BOINC en mi página web

Scripts y herramienta actualizada para mostrar mis tareas de BOINC en mi página web

Hola a todos,

En el fin de semana, me dediqué a mejorar la sección de las tareas BOINC en mi página web:

BOINC Statistics Website Update 1

Ahora, en vez de actualizar manualmente la página cuando tenga un equipo nuevo, he hecho que el archivo PHP se encargue de mantener la lista y las tareas al día. También, como este estilo no lo tenía en GitHub, lo reescribí y lo publiqué ahí. Previamente, el único archio que existía era el que se ve así:

BOINC Statistics Website Update 2

Debido a que ese muestra todas las tareas de todos los equipos en una sola tabla, escribí otro archivo en el que se muestren las tareas de los equipos en tablas separadas. Para esto, escribí algunas funciones y «loops» para que se obtenga toda la información almacenada relacionadas a las tareas. El resultado es el siguiente:

¿Se ve mejor, verdad?

Veamos el código:

Primero, separé la información de la base de datos y ahora la misma se encuentra en un archivo llamado config.php. También, estoy usando un objeto mysqli el cual es accesible en estos archivos. Debido a estos cambios, el archivo orignal tuvo que ser actualizado:

BOINC Statistics Website Update 5

Luego de realizar estos cambios, procedí a escribir el nuevo archivo llamado boinc_tasks_per_machine.php:

BOINC Statistics Website Update 6

Tenemos 3 funciones en este archivo:

BOINC Statistics Website Update 7

function printMachinesLinks($mysqli)

Esta función obtiene las máquina almacenadas en la base de datos MySQL y es usada para imprimir la lista, la cual al presionarla, te lleva a la tabla de esa máquina.

function getTasksFromMachines($mysqli)

Luego de obtener la lista de las máquinas, llamamos a esta función la cual simplemente llama la próxima funcion para cada máquina.

function getTasksPerMachine($mysqli, $machine)

Esta función es la encargada de generar las tablas de cada máquina y también imprime el encabezado.

Ahora, podemos imprimir nuestra lista y tabla de máquinas usando estas 2 simples líneas:

printMachinesLinks($mysqli); 
getTasksFromMachines($mysqli);

La primera línea llama la función printMachinesLinls($mysqli) para imprimir la lista de máquinas y la segunda línea es la que obtiene las tareas y genera la tabla.

El programa que obtiene las tareas y las almacena en la base de datos

BOINC Statistics Website Update 8

También hice algunos cambios al programa de escritorio que obtiene las tareas y las almacena en la base de datos. Primero, convertí la rutina TruncateTablesen una función, returnandoTrue si tuvo éxito limpiando la tabla y False si no:

BOINC Statistics Website Update 9

También añadí un elemento NotifyIcon el cual muestra un ícono en el «system tray» de la computadora cuando se minimiza la pantalla. Así puedes minimizar el programa y se mantendrá ejecutando y populando la base de datos con las tareas. Tambien, añadi el argumento -s el cual gracias a él, podemos añadir una tarea en el «Task Shedule» de la computadora para iniciar el programa cada vez que encendemos el equipo y comienze a actualizar la base de datos:

BOINC Statistics Website Update 10

Luego, hice que el botón de obtener las tareas también funcione para parar el proceso:

BOINC Statistics Website Update 11

Y por último, limpié el código un poco:

BOINC Statistics Website Update 12

¡Y eso es todo! Mejoré el programa y el script en varias formas. Ahora la página se actualiza dinámicamente debido a estos cambios. ¡No tengo que añadir las máquina manualmente! Sólo las añado en el programa y el archivo PHP se encarga del resto.

Debido a que los archivos PHP son muy simples, podemos integrarlos en la página sencillamente copiando y pegando el contenido del mismo. En este caso, he integrado el archivo PHP en mi página web que usa Drupal.

Archivos PHP:

Los archivos PHP se encuentran aquí.

Ejemplo de integración:

Puedes ver el archivo integrado en mi página web aquí.

Repositorio:

El código de la herramienta y los archivos PHP se encuentran en GitHub aquí.

¿Qué debería hacer próximamente? Dejame saber en los comentarios

Posts anteriores:

  1. Post introductorio
  2. Versión 1.1
  3. Versión 1.2
Resultados de la competencia «Compete with team Gridcoin! Asteroids»

Resultados de la competencia «Compete with team Gridcoin! Asteroids»

Saludos a todos,

En el día de hoy, les muestro mi resultado en la competencia «Compete with team Gridcoin! Asteroids», en la cual llegué posición #110:

Asteroids@Home 2 (Spanish) - 1

Esta fue una gran competencia en donde yo y mi tarjeta gráfica Nvidia Geforce GTX 1060 estuvimos analizando datos de asteroides, pues esa es la misión del proyecto [email protected]

Estadísticas del proyecto:

En el proyecto, hasta el día de hoy, tengo estos créditos y medallas acumuladas:

Asteroids@Home 2 (Spanish) - 2

No obstante, esos números subirán pues todavía hay tareas en espera de validación, aunque estos no contarán hacia la competencia pues la misma ha finalizado:

Asteroids@Home 2 (Spanish) - 3

Moviéndome a la próxima competencia:

La próxima competencia ya ha comenzado. Esta vez, la competencia es para el proyecto GPUGrid.net, titulada «Compete with team Gridcoin! GPUGRID»:

Asteroids@Home 2 (Spanish) - 4

Nuevamente, estaré usando mi tarjeta gráfica Nvidia Geforce GTX 1060, y pueden ver que ya estoy procesando tareas de dicho proyecto:

Asteroids@Home 2 (Spanish) - 5

¡Los mantendré informados sobre mi progreso en este proyecto!

Medalla Diamante de 10 años para el proyecto [email protected] Fase 2 del World Community Grid

Medalla Diamante de 10 años para el proyecto [email protected] Fase 2 del World Community Grid

Hola a todos,

En el día de hoy, les quiero mostrar otra medalla que obtuve hacen unos días atrás mientras participaba del proyecto de computación distribuida voluntaria World Community Grid.

Esta medalla es la Medalla Diamante de 10 años para el proyecto [email protected] – Fase 2, la cual es la siguiente: FightAIDS@Home Phase 2 Diamond 10 Year Badge

Esta es la noticia que obtuve en el programa BOINC:

FightAIDS@Home Phase 2 Diamond 10 Year Badge BOINC Message

Y aquí estan mis estadísticas hasta el momento:

FightAIDS@Home Phase 2 Diamond 10 Year Badge Stats

Ahora mismo, estoy contribuyendo a este proyecto en mis equipos Android, así que esperen más medallas de mí en el futuro.

Medallas de 100K créditos y 25% de contribución en el proyecto OLDK1 de BOINC

Medallas de 100K créditos y 25% de contribución en el proyecto OLDK1 de BOINC

Hola a todos,

Como muchos de ustedes sabrán, me encanta participar en proyectos de Computación Distribuida que usan la plataforma BOINC (Berkeley Open Infrastructure for Network Computing).

Recientemente, el proyecto OLDK1 fue aprobado en la lista blanca de los proyectos elegibles para obtener Gridcoins, así que decidí participar de este proyecto, el cual se basa en generar una base de datos compusto de Cuadrados Latinos.

Para mi sorpresa, en tan solo algunos días, he obtenido la medalla de 100K créditos y la medalla de aportar un 25% de contribución al proyecto:

OLDK1 100K Credits Badge

A continuación se encuentran las máquinas que están aportando a este proyecto:

¡Así es! Tengo mis computadoras con procesadores Intel y AMD participando en este proyecto. ¡Cuenten los totales de procesadores participando!

Aquí tienen una captura de pantalla de mi laptop con un procesador i7-4700MQ:

OLDK1 100K Credits BOINC Tasks 2

¡Eso es todo!

Medalla Diamante de 5 años del proyecto Microbiome Immunity Project del World Community Grid

Medalla Diamante de 5 años del proyecto Microbiome Immunity Project del World Community Grid

Hola a todos,

Hacen 2 días atrás, obtuve mi Medalla Diamante de 5 años para el proyecto Microbiome Immunity Project del World Community Grid. La medalla es la siguiente: Microbiome Immunity Project - Diamond 5 Year Badge

Esta medalla es otorgada luego de haber realizado 5 años de computación en tiempo de CPU. Como he explicado anteriormente en los otros posts, esta es una matemática en donde cada hilo del CPU ejecuta una tarea del proyecto y, suponinedo que tu CPU es de 8 núcleos con 16 hilos, y recibes 16 tareas simultaneas, suponiendo que se ha procesado una hora de trabajo en cada unidad, esto equivale a 16 horas. Esto es lo que se acumula y al final del día, es lo que se usa para saber cuanto has contribuido a un proyecto.

Esta es la notifica que recibí en BOINC (Berkeley Open Infrastructure for Network Computing):

Microbiome Immunity Project - Diamond 5 Year Badge BOINC Message

(Tengo que actualizar BOINC)

Estas son mis estadísticas hasta este punto:

Microbiome Immunity Project - Diamond 5 Year Badge Stats 1

Más estadísticas:

Microbiome Immunity Project - Diamond 5 Year Badge Stats 2

Sigo contribuyendo todos los días como de costumbre con una variedad de equipos.

¡Pendientes para mis futuros logros!

Mis logros en el proyecto World Community Grid hasta el día de hoy (16 de octubre de 2017)

Mis logros en el proyecto World Community Grid hasta el día de hoy (16 de octubre de 2017)

Saludos a todos,

En este post, les quiero hablar sobre mis logros en el proyecto de Computación Distribuida llamada World Community Grid:

  • Obtuve la medalla Diamante de 20 años en el subprojecto Smash Childhood Cancer: World Community Grid - Smash Childhood Cancer - Diamond 20 Year Badge
  • Obtuve la medalla Diamante de 20 años en el subprojecto Outsmart Ebola Together: World Community Grid - Outsmart Ebola Together - Diamond 20 Year Badge
  • Obtuve la medalla Diamante de 20 años en el subprojecto OpenZika: OpenZika - Diamond 20 Year Badge
  • En estos días, obtuve la medalla Zafiro en el subprojecto Microbiome Immunity Project: Microbiome Immunity Project - Sapphire Badge

Apoyo estos proyectos y otros más de computación distribuida ya que ayudo a acelerar las investigaciones en el campo de la medicina.

Aquí están mis estadísticas hasta el día de hoy:

Un Screenshot de BOINC en mi computadora con el procesador AMD Ryzen 7 1700 corriendo a 3.6Ghz y una tarjeta de video Nvidia GeForce 1060 3GB:

World Community Grid BOINC Tasks - 2017-10-16

Futuro:

Como verán en las estadísticas, hay muchos proyectos. Los siguientes son los que tengo activados para aportar por el momento:

World Community Grid Projects - 2017-10-16

La idea es obtener las demás medallas en estos proyectos y luego seguir contribuyendo en los demás proyectos que tengo desactivado, que de hecho, aunque están desactivados, sigo contribuyendo a ellos en caso de que los proyectos seleccionados no tengan tareas disponibles para procesar.

Espero obtener la medalla de 5 años hasta llegar a la de 20 en el Microbiome Immunity Project y obtener la medalla de 10 años de [email protected] – Fase 2.

Mi servidor de 24 hilos está apagado en estos momentos debido a que aún hay dificultades con el servicio eléctrico y de internet en Puerto Rico. Los demás equipos míos andan contribuyendo ya que se encuentran aquí en el estado de la Florida. Una vez el servicio eléctrico y de internet sean reestablecidos en la Isla, el servidor de 24 hilos estará funcionando nuevamente y aportando a todos estos proyectos.

¡Esto es todo por este post!

Una introducción al proyecto Microbiome Immunity Project del World Community Grid y mis medallas obtenidas

Una introducción al proyecto Microbiome Immunity Project del World Community Grid y mis medallas obtenidas

Hola a todos,

En este post, les hablaré acerca de mi contribución a un nuevo proyecto del World Community Grid llamado Microbiome Immunity Project.

Para aquellos que me conocen muy bien, sabrán que soy un gran fanático de proyectos de Computación Distribuida, especialmente aquellos proyectos que corren bajo la plataforma BOINC (Berkeley Open Infrastructure for Network Computing). Personalmente creo que el poder de una computadora debe ser donado a proyectos que tienen causas nobles, y aunque gasto electricidad manteniendo mis equipos encendidos, sé que estoy ayudando a marcar la diferencia aportando a dichos proyectos, recibiendo, procesando y envieando tareas ya procesadas.

Esta vez, World Community Grid ha lanzado el proyecto llamado Microbiome Immunity Project, el cual se suma a los otros proyectos que actualmente se están ejecutando que al momento de este post son Smash Childhood Cancer, OpenZika, Help Stop TB, [email protected] – Phase 2, Outsmart Ebola Together, Mapping Cancer Markers, y [email protected], a los que también he contribuido donando la capacidad de procesamiento de mi CPU de todos mis equipos, incluidos mis tabletas y telefonos. (Si, los telefonos celulares pueden ayudar a hacer un mundo mejor. Los CPUs de estos equipos hoy en día son bastante potentes.)

El proyecto Microbiome Immunity Project es un proyecto que busca ayudar a los científicos entender cómo las bacterias juegan un rol en nuestros cuerpos y cómo son responsables de algunas enfermedades como la diabetes. Mediante la computación de tareas, estaremos ayudando a los científicos a entender mejor todo esto, ya que estaremos analiando diferentes proteínas y moléculas de los genes de las bacterias.

World Community Grid continúa en su misión de ayudar a resolver problemas actuales en la medicina y en el medio ambiente, colaborando con científicos alrededor del mundo, pero el trabajo principal lo hacemos nosotros los que colaboramos con el World Community Grid, procesando todas esas tareas de los proyectos que actualmente se están ejecutando.

Ya dicha esta introducción, hasta el día de hoy he obtenido mi medalla Ruby, el cual es una medalla que es otorgada luego de 180 días de computación. Esta medalla luce así: Microbiome Immunity Project - Ruby Badge. Las medallas anteriores son la Medalla Bronce, otorgada a los 14 días Microbiome Immunity Project - Bronze Badge, La medalla Plata, que es otorgada luego de 45 días Microbiome Immunity Project - Silver Badge, y la medalla Oro, otorgada luego de 90 días Microbiome Immunity Project - Gold Badge.

Cabe destacar que en el mundo de computación BOINC, un hilo del CPU de la computadora equivale a un día de computación. Esto quiere decir que si tengo un equipo, digamos con un procesador Intel i7, que usualmente son procesadores de 4 nucleos y 8 hilos, si se procesa trabajo las 24 horas del día, se están haciendo 8 días de computación.

Estos son los mensajes que he recibido en el programa BOINC acerca de las medallas:

Microbiome Immunity Project - Ruby Badge Message

Y aquí pueden ver mis estadísticas al momento de este post:

Microbiome Immunity Project - Ruby Badge Stats 1 (2017-08-31)

Como pueden ver, he contribuido a una gran variedad de los proyectos del World Community Grid. La próxima medalla será la medalla Esmeralda, otorgada luego de un año de computación. Puedes ver cuándo se otorga una medalla En esta página presionando aquí.

Y ahora, algunas estadísticas extras de mi contribución:

Microbiome Immunity Project - Ruby Badge Stats 2 (2017-08-31)

BOINC = Berkeley Open Infrastructure for Network Computing, es un programa de computación distribuida que te permite participar en una gran variedad de proyectos dedicados en los campos de Ciencia, Medicina, Matemática, Astronomía, y mucho más. Conoce más acerca de BOINC presionando aquí.

Conoce más acerca de World Community Grid presionando aquí
Conoce más acerca de Microbiome Immunity Project presionando aquí

Mis equipos principales que uso para procesar tareas de este proyecto son: 2x Intel Xeon X5670 (24 núcleos en total), AMD Ryzen 7 1700 (OC a 3.60Ghz, 16 núcleos), Intel i7-4700MQ (8 núcleos), Intel i7-3610QM (8 núcleos), muchos Intel Atom Z3735G/F y de los Intel Atom X5, todos siendo procesadores de 4 núcleos, y los procesadores ARM de los celulares y tabletas, que usualmente son de 4 núcleos.

Screenshot de mi servidor con 2x Intel Xeon X5670:

Microbiome Immunity Project - BOINC Tasks (2017-08-31)

¡Y eso es todo! Espero que les haya gustado leer este artículo y que hayan aprendido algo acerca de mi contribución a este proyecto.