hits counter
Este sitio web utiliza cookies para obtener estadísticas de navegación. Si sigue adelante, consideraremos que acepta su uso. Acepto | Más información

BOINC:



¿Qué es BOINC?

En Internet, la palabra BOINC es un acrónimo que se refiere a un sistema de computación distribuida. Es una forma de poner nuestro ordenador al servicio de la ciencia. Vamos a explicar esto de una forma más detallada.


El problema

Existen en todo el mundo grupos de investigación que llevan a cabo diversos estudios con el fin de encontrar soluciones para algunos de los problemas más acuciantes que padece la humanidad: biológicos (como los relacionados con las proteínas), médicos (de lucha contra el cáncer, el SIDA, el Covid-19, el ébola...), medioambientales (sobre el calentamiento global y el cambio climático), astronómicos, matemáticos, etc. Estos estudios necesitan procesar una enorme cantidad de información para obtener modelos computacionales que ayuden a los científicos en sus investigaciones. Para procesar toda esa información y la gran cantidad de datos con los que trabajan, se requiere una capacidad de cálculo extraordinaria, de manera que tendrían que usar superordenadores para realizar esa labor, y el coste de estas máquinas es de varios millones de euros.


La solución

Para intentar solucionar este problema, algunos de esos grupos de investigación recurren a la computación distribuida o redes grid. Este método consiste en utilizar, a través de Internet, los ordenadores personales de usuarios voluntarios de todo el mundo para procesar una parte de los datos que requieren las tareas de investigación. Dado que una gran parte del tiempo que usamos nuestros ordenadores, estos permanecen encendidos pero inactivos (o incluso estando activos, el procesador está infrautilizado la mayor parte del tiempo), podemos instalar en el ordenador un pequeño programa que aproveche esos tiempos muertos de nuestra máquina y se conecte con el centro de investigación, se descargue un paquete de datos, lo procese y finalmente devuelva los resultados del análisis a los científicos, todo ellos de forma automatizada. Cuando esto se realiza simultáneamente en varios millones de ordenadores distribuidos por todo el mundo, la capacidad de cálculo que se consigue es enorme, superior incluso a la del mayor supercomputador del mundo.

La computación distribuida nos ofrece, pues, una manera muy sencilla de ser solidarios y nos da la oportunidad de poner nuestro granito de arena para contribuir a solucionar algunos de los grandes males que padece actualmente la humanidad. Y todo ello sin movernos de casa y sin necesidad de dar dinero: simplemente usando nuestro ordenador.


La plataforma BOINC

La aplicación que hemos de instalar en nuestro ordenador para participar en proyectos de computación distribuida se llama BOINC (Berkeley Open Infrastucture for Network Computing, ‘Infraestructura Abierta de Berkeley para la Computación en Red’). Es una aplicación gratuita que está disponible para Windows, Linux, macOS y para procesadores ARM (como los que usa la Raspberry o los móviles con Android).

BOINC puede configurarse para que se ejecute cuando no hacemos nada en el ordenador, sólo los días y horas que deseemos o bien para que se ejecute continuamente. Incluso en este último caso es posible configurarlo a nuestro gusto para asignarle el uso y tiempo de CPU que creamos adecuados a nuestras circunstancias concretas.




Modo texto

Para que BOINC funcione en la Raspberry Pi es necesario usar como mínimo los modelos 3B/3B+, que tienen 1 GB de memoria. Por ello, lo mejor es instalar Raspberry Pi OS Lite debido a su menor consumo de recursos hardware, especialmente de memoria RAM.


Requisitos previos

  1. 1.) Es conveniente asignarle a la Raspberry una IP estática, tal y como se indica en este apartado.
  2. 2.) Necesitamos conocer los proyectos de la Plataforma BOINC que tienen soporte para los procesadores ARM y participar en aquellos que nos parezcan más interesantes.
  3. 3.) Para unirnos (Join) a un proyecto tenemos que entrar en su web y crear una cuenta utilizando un nombre de usuario, un email y una contraseña.

    Por poner un par de ejemplos, dos de los proyectos que más usuarios tienen son Rossetta@home (estudia las proteínas con la finalidad de encontrar una cura para algunas enfermedades humanas que hoy día aún no la tienen) o Einstein@home (busca señales de estrellas de neutrones giratorias, llamadas púlsares, utilizando los detectores de ondas gravitacionales LIGO, el radiotelescopio de Arecibo y el satélite de rayos gamma Fermi).


Instalar el cliente y vincularlo a un proyecto

Una vez realizados los pasos anteriores, vamos a instalar el cliente BOINC en modo texto:

sudo apt install boinc-client

Suponiendo que nos hayamos unido, por ejemplo, al proyecto Rossetta@home, lo primero que hemos de hacer es verificar que no ha habido ningún problema con el registro y que el servidor nos reconoce correctamente. Para ello, escribimos esto:

boinccmd --lookup_account https://boinc.bakerlab.org/rosetta mi@correo.com password

Sustituiremos, naturalmente, lo que aparece en negrita por la dirección URL del proyecto, el correo y la contraseña que hemos utilizado para darnos de alta en el mismo. Y ese comando nos devolverá nuestra account key:

status: Success
poll status: operation in progress
poll status: operation in progress
account key: 9s87752ebad5a012512ee8344ef566xxxxxc

Conociendo este último dato, ya podemos vincular el cliente al proyecto, sustituyendo account_key en el comando siguiente por el código que acabamos de obtener:

boinccmd --project_attach https://boinc.bakerlab.org/rosetta account_key

Ya que Raspberry Pi OS es un sistema operativo de 32 bits, y dado que algunos proyectos requieren el uso de un sistema de 64 bits (como es precisamente el caso de Rossetta@home), es necesario decirle al SO que se muestre como si fuera tal, lo que conseguiremos editando el siguiente fichero:

sudo nano /boot/config.txt

Al final del mismo añadiremos esta línea:

arm_64bit=1

Y reiniciamos:

sudo reboot

Hay que notificárselo también al servidor del proyecto. Para hacerlo, editamos otro fichero:

sudo nano /etc/boinc-client/cc_config.xml

Y sustituimos su contenido por este otro:

<cc_config>
  <log_flags>
    <task>1</task>
    <file_xfer>1</file_xfer>
    <sched_ops>1</sched_ops>
  </log_flags>
  <options>
    <alt_platform>aarch64-unknown-linux-gnu</alt_platform>
    <allow_remote_gui_rpc>1</allow_remote_gui_rpc>
  </options>
</cc_config>

Ya sólo queda reiniciar el cliente:

sudo systemctl restart boinc-client

Aumentar la memoria RAM

Puesto que estamos usando Raspberry Pi OS Lite, que carece de entorno gráfico, vamos a reducir la memoria reservada para la GPU de los 64 MB que se le asigna por defecta a sólo 16 MB. Esto lo haremos entrando en la configuración del sistema:

sudo raspi-config

Seleccionamos el apartado 7 Avanced Options y en Memory Split sustituimos 64 por 16.

Además, aumentaremos el tamaño de la memoria swap de los 100 MB asignados por defecto a los 1024 ó 2048 MB, tal y como se explica en este apartado.

Reiniciamos el sistema para que los cambios surtan efecto:

sudo reboot

Uso mediante comandos + web del proyecto

Podemos controlar el cliente BOINC mediante diversos comandos (con boinccmd --help obtendremos una lista de todos ellos) y realizar su configuración desde la web de cada proyecto, concretamente en el apartado Preferences -- Computing preferences. Aquí, en Computing -- Usage limits, es recomendable poner un 100% en el uso de la CPU para que utilice todos los núcleos del procesador y asignar sobre un 75% de tiempo de CPU. Más abajo, en el apartado Memory, pondremos un 100% de uso de memoria en las dos primeras líneas.

Dependiendo de las característivas de cada proyecto, es posible que, debido a la escasa memoria de la Raspberry Pi 3, la primera vez tarde un poco en recibir tareas (e incluso puede que obtengamos algún mensaje referido a la escasez de memoria), pero después de dejarla en espera durante un tiempo, el servidor del proyecto acabará encontrando las tareas adecuadas a su hardware y las descargará sin problemas de aquí en adelante para su procesamiento.


Utilización por medio de BOINCTUI

Sin embargo, una forma mucho más cómoda de controlar y configurar el cliente es instalando un frontend llamado boinctui:

sudo apt install boinctui screen

Luego lo ejecutamos con

screen boinctui

Al arrancar por primera vez se nos pedirá configurar el host. Dejamos los datos que se nos ofrecen por defecto (host, puerto y contraseña en blanco), de manera que sólo tenemos que pulsar la tecla Intro para aceptar. A continuación accedemos al menú superior con la tecla F9 y con las flechas nos movemos por él y añadimos un proyecto:


Uso mediante BOINC Manager desde otro PC

Otra forma aún más fácil y cómoda de hacer esto es instalando la aplicación gráfica BOINC Manager en el PC desde el que accedemos habitualmente a la Raspberry. Si usamos un sistema Linux (como por ejemplo Debian y derivados), podremos hacerlo desde los propios repositorios del SO:

(sudo) apt install boinc-manager

En el caso de Windows o macOS, nos descargaremos la aplicación de aquí.

Una vez instalada en nuestro PC, la arrancamos (cerramos la ventana de añadir un proyecto, si aparece) y en el menú Archivo pinchamos en Seleccionar ordenador. En Nombre del ordenador escribimos la IP local de la Raspberry y la Clave la dejamos en blanco. Hacemos clic en Aceptar y ya podremos controlar el cliente BOINC desde esta aplicación gráfica.

Para empezar, en el menú Herramientas podremos añadir proyectos y en el menú Opciones tendremos la posibilidad de configurar las Preferencias de computación.




Modo gráfico

Para que BOINC funcione adecuadamente en la Raspberry Pi en modo gráfico es recomendable hacerlo con un modelo 4B que posea 2, 4 u 8 GB de memoria. En este caso debemos instalar Raspberry Pi OS Desktop.


Requisitos previos

  1. 1.) Es conveniente asignarle a la Raspberry una IP estática, tal y como se indica en este apartado.
  2. 2.) Necesitamos conocer los proyectos de la Plataforma BOINC que tienen soporte para los procesadores ARM y participar en aquellos que nos parezcan más interesantes.
  3. 3.) Para unirnos (Join) a un proyecto tenemos que entrar en su web y crear una cuenta utilizando un nombre de usuario, un email y una contraseña.

Instalar el cliente

Una vez realizados los pasos anteriores, vamos a instalar el cliente BOINC en modo gráfico. Para ello ejecutamos el siguiente comando:

sudo apt install boinc

De esta forma se instalarán tanto el cliente como la aplicación BOINC Manager.

Ya que Raspberry Pi OS es un sistema operativo de 32 bits, y dado que algunos proyectos requieren el uso de un sistema de 64 bits (como Rossetta@home, por ejemplo), es necesario decirle al SO que se muestre como si fuera tal, lo que conseguiremos editando el siguiente fichero:

sudo nano /boot/config.txt

Al final del mismo añadiremos esta línea:

arm_64bit=1

Y reiniciamos:

sudo reboot

Hay que notificárselo también al servidor del proyecto. Para hacerlo, editamos otro fichero:

sudo nano /etc/boinc-client/cc_config.xml

Y sustituimos su contenido por este otro:

<cc_config>
  <log_flags>
    <task>1</task>
    <file_xfer>1</file_xfer>
    <sched_ops>1</sched_ops>
  </log_flags>
  <options>
    <alt_platform>aarch64-unknown-linux-gnu</alt_platform>
    <allow_remote_gui_rpc>1</allow_remote_gui_rpc>
  </options>
</cc_config>

Ya sólo queda reiniciar el cliente:

sudo systemctl restart boinc-client

Como medida extra, no estaría de más aumentar el tamaño de la memoria swap desde los 100 MB asignados por defecto a los 1024 ó 2048 MB, tal y como se explica en este apartado.


Uso mediante BOINC Manager

Podemos acceder de forma gráfica a la Raspberry mediante el servidor VNC que Raspberry Pi OS trae activado por defecto, según explicamos aquí. Cuando nos conectemos y aparezca el escritorio, desplegamos el menú, vamos a Herramientas del sistema y seleccionamos BOINC Manager.

Otra posibilidad es hacer lo mismo que indicamos al final del apartado anterior: instalar BOINC Manager en un PC y controlar el cliente de la Raspberry desde él. Para ello, una vez instalado en el PC, lo arrancamos (cerramos la ventana de añadir un proyecto, si aparece) y en el menú Archivo pinchamos en Seleccionar ordenador. En Nombre del ordenador escribimos la IP local de la Raspberry y la Clave la dejamos en blanco. Hacemos clic en Aceptar y ya podremos usar y configurar el cliente BOINC de la Raspberry Pi de forma gráfica.

Para empezar a usarlo, en el menú Herramientas podremos añadir proyectos y en el menú Opciones tendremos la posibilidad de configurar las Preferencias de computación.