Computación distribuida en Debian GNU/Linux

Escrito por: diskoppix
10 de Octubre del 2006

BOINC (Infraestructura Abierta de Berkeley para la Computación en Red) es una plataforma para la computación distribuida que una vez instalado en tu ordenador actúa como cliente recibiendo tareas desde un servidor. La idea es repartirse el trabajo entre muchos ordenadores de forma que el rendimiento final sea el de una especie de superordenador. Hay varios proyectos en marcha que usan de BOINC,desde la búsqueda de inteligencia extraterrestre, predicción del clima, búsqueda de púlsares,etc.

Una vez instalado hay que darse de alta en los diferentes sitios de cada proyecto y crearnos una cuenta por cada uno de ellos. A partir de ahí podemos, desde nuestras distintas cuentas,editar nuestras preferencias en cuanto a uso de memoria, procesador, disco, etc por parte del programa. Por defecto el cliente actúa solo cuando nuestro ordenador no está en uso, aunque esto también se puede modificar.

Para instalarlo podemos bajárnoslo desde su sitio Web. Pero en el caso de Debian tenemos varios paquetes:

1. boinc-client: es el núcleo del programa que una vez instalado actúa como un demonio. Y como tal podremos iniciarlo, pararlo o reiniciarlo con el siguiente comando:

/etc/init.d/servicio {stop | start | restart}

Y además este paquete contiene una interfaz en línea de comandos: boinc_cmd.

2. boinc-manager:este paquete contiene el ejecutable boincmgr ,una interfaz gráfica basada en GTK.

3. kboincspy:para los que usen KDE.

Entre los proyectos en marcha se encuentran los siguientes:

Para unirse a los proyectos y crear nuestras cuentas, si usamos el BOINC manager simplemente hay que elegir en su menú "Unirse a un proyecto" e introducir la URL del mismo. En caso de que utilicemos la línea de comandos tendremos que hacerlo mediante un navegador desde los sitios de los distintos proyectos,una cuenta por cada proyecto. Una vez nos hayamos suscrito y con el demonio en marcha, podemos usar el siguiente comando para aportar nuestro granito de arena al proyecto que más nos atraiga:

boinc_cmd --project_attach url clave_de_la_cuenta

Se puede contribuir individualmente a un proyecto,pero también te puedes unir a un grupo (sólo uno) o crear el tuyo propio en el siguiente enlace.

http://setiathome.berkeley.edu/team.php

Hay cientos,si no miles de grupos como HispaSeti,Astroseti...incluso freebsd tiene un grupo. Te puedes dar de alta en un grupo desde el sitio web de SETI y en algunos casos desde la propia web del grupo.

Parece ser que la primera vez que se utiliza boinc_cmd no puede conectar con el demonio debido a que crea una clave aleatoria que vuelca en el fichero /var/lib/boinc-client/gui_rpc_auth.cfg ,o en /home/gui_rpc_auth.cfg(1) y que podemos cambiar a nuestro antojo. Tendremos que reiniciarlo y ya podremos usar la línea de comandos.

(1) Al arrancar por primera vez, podemos indicarle que use un directorio en concreto mediante:

boinc_client -dir /home/usuario/.boinc


Usando la Línea de comandos


  boinc_client                                                                    
                                                                                  
  SINOPSIS:                                                                       
  boinc_client [opciones]                                                         
                                                                                  
  DESCRIPCIÓN:Cliente para la comunicación con BOINC (infraestructura             
             Abierta de Berkeley para la Computación en Red)                      
                                                                                  
  OPCIONES:                                                                       
  -help --------------------- Muestra la ayuda.                                   
  -show_projects ------------ Muestra los proyectos en curso.                     
  -attach_project URL key --- Se suma a un proyecto                               
  -detach_project URL ------- Se separa de un proyecto                            
  -reset_project URL -------- Borra y restaura un proyecto.                       
  -update_prefs URL --------- Actualiza las preferencias.                         
  -dir ruta ----------------- Indicamos un directorio home para BOINC.            
  -redirectio --------------- Redirige los logs que por defecto de encuentran en  
                             /var/lib/boinc-client/stdoutdae.txt y stderrdae.txt  
  -no_gui_rpc --------------- No podra controlarse mediante boincmgr o boinc_cmd. 
  -allow_remote_gui_rpc ----- Permite conexiones remotas.Por defecto solo admite  
                             conexiones desde el mismo host.       
               
             =================================================

  boinc_cmd                                                                       
                                                                                  
  SINOPSIS                                                                        
  boinc_cmd [--host hostname[:puerto]] [--passwd contraseña] comandos             
  boinc_cmd [-hV]                                                                 
                                                                                  
   --host hostname[:port]----- Nombre del ordenador,por defecto localhost.        
   --passwd contrasena ------- Si existe gui_rpc_auth.cfg la leerá de ahí.        
                                                                                  
  DESCRIPCIÓN:Interfaz en linea de comandos para el cliente boinc_client          
                                                                                  
  COMANDOS                                                                        
  --get_results ---------- Muestra todas las tareas.                              
  --get_file_transfers --- Muestra todos los archivos transferidos.               
  --get_project_status --- Muestra el estado de todos los proyectos.              
  --get_disk_usage ------- Muestra el espacio ocupado en disco por los proyectos. 
  --get_state ------------ Muestra todo lo anterior.                              
  --get_host_info -------- Muestra información de máquina en la que se ejecuta.   
                                                                                  
  --project_attach url clave - Nos unimos a un proyecto                           
  --project url opciones ----- Operamos sobre un proyecto.                        
    |reset ------------------ Eliminamos las tareas de un proyecto y pide nuevas.
    | detach ----------------- Eliminamos un proyecto en curso.                   
    | update ----------------- Envía las tareas terminadas.                       
    | suspend ---------------- Suspendemos las tareas del proyecto.               
    | resume ----------------- Reiniciamos las tareas del proyecto.               
    | nomorework ------------- Terminamos las tareas en curso y no pedimos más.   
    | allowmorework ---------- Deshacemos nomorework.                             
    '-----------------------------------                                          
                                                                                  
  --result url result_name opciones ---- Operamos sobre una tarea.                
    | suspend ----- Paramos temporalmente una tarea.                              
    | resume ------ Reiniciamos una tarea suspendida.                             
    | abort ------- Paramos definitivamente una tarea.                            
    '----------------------------------                                           
                                                                                  
  --get_run_mode ------------------------------ Muestra el modo de ejecución.     
  --set_run_mode {always | auto | never} ------ Configuramos el modo de ejecución.
    | always Se ejecuta siempre (network + CPU).                                  
    | auto   Se ejecuta según las preferencias.                                   
    | never  Se suspenden todas las tareas.                                       
    '-----------------------------------                                          
                                                                                  
  --get_network_mode --------------------------- Muestra el modo de red.          
  --set_network_mode {always | auto | never} --- Configuramos el modo de red.     
    | always Se ejecuta siempre.                                                  
    | auto   Se ejecuta según las preferencias.                                   
    | never  Se suspenden todas las tareas.                                       
    '-----------------------------------                                          
                                                                                  
  --get_proxy_settings --------- Muestra la configuración del proxy               
  --set_proxy_settings  http_server_name  http_server_port http_user_name         
     http_user_passwd  socks_server_name   socks_server_port   socks_version      
     socks5_user_name socks5_user_passwd                                          
           Configuramos el proxy.Todos los campos son  obligatorios               
                                                                                  
  --get_screensaver_mode                                                          
  --set_screensaver_mode  {on  |  off}  blank_time  {--desktop   desktop}         
         {--window_station window_station} {--display display}                    
               Tell the core client to start or stop doing fullscreen graphics,   
               and  going to black after blank_time seconds. The optional argu-   
               ments specify which desktop / windows_station (Windows) or  dis-   
               play (X11) to use.                                                 
                                                                                  
  --quit ------ Para la ejecución del núcleo.                                     
                                                                                  

Enlaces:




Valid XHTML 1.0 Transitional ¡CSS Válido! Creative Commons License