Tabla de contenido:

DEMAC, un clúster modular de Beowulf impreso en 3D: 23 pasos (con imágenes)
DEMAC, un clúster modular de Beowulf impreso en 3D: 23 pasos (con imágenes)

Video: DEMAC, un clúster modular de Beowulf impreso en 3D: 23 pasos (con imágenes)

Video: DEMAC, un clúster modular de Beowulf impreso en 3D: 23 pasos (con imágenes)
Video: 15 современных крошечных домов и сборных модульных домов 2024, Noviembre
Anonim
DEMAC, un clúster modular de Beowulf impreso en 3D
DEMAC, un clúster modular de Beowulf impreso en 3D

Computación de alto rendimiento (HPC) es la capacidad de procesar datos y realizar cálculos complejos a altas velocidades, es la aplicación de "Supercomputadoras" a problemas computacionales que son demasiado grandes para computadoras estándar o que tardarían demasiado en completarse. El Top500 es una lista, que se publica dos veces al año, y clasifica algunas de las computadoras más rápidas y poderosas del mundo. Los países y las grandes organizaciones gastan millones en recursos para tener estos sistemas en funcionamiento para que los científicos aprovechen la tecnología de punta y resuelvan problemas complejos.

Hace años, las computadoras solían mejorar su rendimiento aumentando la velocidad del procesador. Después de que enfrentamos una desaceleración en este tipo de enfoque, los desarrolladores decidieron que para continuar aumentando el rendimiento de las computadoras, se deberían empaquetar varios núcleos (o unidades computacionales). La agregación de múltiples recursos computacionales y los mecanismos para controlar estos recursos es lo que llamamos "paralelismo" en informática. Tener múltiples núcleos realizando múltiples tareas suena como un buen enfoque para mejorar el rendimiento de una computadora… pero esto abre una gran pregunta: ¿cómo usamos estos recursos de manera más eficiente?

Estas preguntas han mantenido ocupado al científico informático, hay varias formas de decirle a una computadora cómo hacer las cosas, hay incluso más formas de decirle a varias computadoras cómo hacer las cosas. Este proyecto tiene como objetivo desarrollar una plataforma asequible donde todos puedan experimentar con una máquina altamente paralela, probar modelos existentes para aplicarlos en sus propios proyectos, desarrollar formas nuevas y creativas de resolver problemas computacionales o simplemente usarlo como una forma de enseñar a otros sobre computadoras. Esperamos que pueda disfrutar trabajando con DEMAC tanto como nosotros.

DEMAC

El Delaware Modular Assembly Cluster (DEMAC) es una matriz extensible de sistemas integrados (computadoras del tamaño de una tarjeta) y un conjunto de marcos impresos en 3D para encajar las placas y hardware adicional que proporciona energía, enfriamiento y acceso a la red.

Cada dispositivo o sistema integrado es una computadora pequeña, una placa Parallella que combina los recursos de un procesador ARM de doble núcleo, un coprocesador de 16 núcleos llamado Epiphany y un FPGA integrado con la flexibilidad de una pila completa de código abierto. El soporte es un marco impreso en 3D hecho en casa que permite una implementación de bajo costo y una estructura escalable. Está diseñado para adaptarse a 4 unidades de un bastidor de tamaño estándar (como los que se encuentran en las salas de servidores de computadoras).

Este instructable incluye:

- Una lista de materiales necesarios

- Instrucciones para imprimir en 3D los marcos.

- Instrucciones para montar y conectar las piezas.

- Una guía para descargar e instalar el software requerido

- Una descripción de cómo conectarse e interactuar con el clúster.

- Un "¿Por qué estamos haciendo esto?" sección

¿Quienes somos?

Somos CAPSL (Computer Architecture and Parallel Laboratory), de la Universidad de Delaware. Creemos que el futuro de la computación debería tener una base sólida en la teoría del flujo de datos (que explicaremos más adelante en este instructivo si está interesado).

Suministros

Esta lista describe los materiales necesarios para construir un grupo de 4 placas

- 4 tableros Parallella (puede obtenerlos de DigiKey u otros proveedores, puede encontrar más información en su sitio web

- 4 tarjetas micro-SD con al menos 16 Gb (aquí hay un paquete de 10 muy barato o algo así como estos combos más flexibles)

- 4 cables micro-USB con una longitud mínima de 30 cm (1 pie) (los recomiendo)

- Cargador USB [con al menos 4 puertos tipo A] (recomiendo este con 6 puertos, o uno con el mismo factor de forma, ya que la caja de alimentación está diseñada para ello)

- Ventilador de refrigeración [tamaño máximo 100 mm x 100 mm x 15 mm] (recomiendo este porque es barato y funciona, pero otros con tamaño y configuración de cable similares funcionan)

- Fuente de alimentación para ventilador de refrigeración (Si su configuración es para más de 8 placas, recomiendo esta o algo similar [AC 100 V / 240 V a DC 12 V 10 A 120 W] que tiene una bonita carcasa metálica y también se puede acoplar al interruptor) (Si va a conectar solo dos ventiladores o menos, puede usar cualquier fuente de alimentación de 12 V con al menos 1 A de salida de alimentación que pueda tener)

- 5 cables Ethernet (4 pueden ser cortos como estos, dependiendo de la distancia desde el conmutador a las placas, y uno debe ser lo suficientemente largo para conectar el conmutador con su computadora o con el módem para acceder a la red del clúster)

>> Nota importante: Se requiere un sistema de refrigeración, de lo contrario, las placas pueden sobrecalentarse. <<<

Piezas impresas en 3D

- 4 bandejas de cartón (Frame_01)

- Carcasa de 1 placa (Frame_02)

- 1 carcasa de ventilador (Frame_03_B y Frame_03_T)

- 1 carcasa de alimentación (Frame_04)

Paso 1: Acerca de DEMAC

Sobre DEMAC
Sobre DEMAC

DEMAC es parte de un panorama más amplio, una plataforma flexible y escalable que nos permite desarrollar y probar nuevos modelos de ejecución de programación (PXM) para computación en paralelo. Un PXM es más que una forma de describir la computación, representa la columna vertebral que proporciona un acuerdo entre la forma en que se expresa un programa y cómo se traduce a un lenguaje común que puede ser ejecutado por la máquina. Describimos un conjunto de elementos que permite al usuario generar programas y una forma de organizar la ejecución del programa. El programa puede ser optimizado para apuntar a una arquitectura específica por el usuario o una herramienta automatizada basada en este trasfondo común.

Puede obtener más información sobre este proyecto al final de este instructivo, también puede hacer clic aquí para obtener más información sobre DEMAC o aquí para obtener más información sobre CAPSL)

Paso 2: Impresión 3D DEMAC

Impresión 3D DEMAC!
Impresión 3D DEMAC!
Impresión 3D DEMAC!
Impresión 3D DEMAC!
Impresión 3D DEMAC!
Impresión 3D DEMAC!

En esta sección puede encontrar una guía para imprimir en 3D los marcos que encierran los otros componentes y brindan soporte estructural. Incluso si es un maestro de la impresión 3D, aquí hay algunos consejos que puede considerar al imprimir estos marcos. Todos los marcos se pueden imprimir utilizando una boquilla de 0,4 mm con una altura de capa de 0,3 o 0,2 (también puede utilizar adaptativo). Imprimí todo usando PLA, pero realmente no importa si desea usar otros materiales (siempre que brinden estabilidad estructural y puedan tolerar temperaturas más altas o iguales que el PLA).

Archivos STL:

www.thingiverse.com/thing:4493780

cults3d.com/en/3d-model/various/demac-a-mo…

www.myminifactory.com/object/3d-print-dema…

Bandeja de cartón (Frame_01)

No se requieren soportes adicionales. Este es bastante sencillo, solo colóquelo con la superficie plana hacia la superficie de impresión.

Carcasa de la placa (Frame_02)

Éste puede requerir algo de apoyo en las vigas del medio. Puede argumentar que una máquina / cortadora bien ajustada puede imprimir esos puentes sin soporte adicional. Pruebe primero con algunas pruebas de esfuerzo puente si desea imprimir sin soportes, ya que la idea era que no los requerirían. Por otro lado, las columnas laterales y las paredes brindan suficiente soporte para que estas se impriman sin estructuras de soporte adicionales.

Carcasa del ventilador (Frame_03_B y Frame_03_T)

No se requieren soportes adicionales. Simplemente coloque ambas partes con la superficie plana hacia la superficie de impresión.

Carcasa de energía (Frame_04)

Al igual que Frame_02, este puede requerir algo de apoyo en las vigas del medio. También puede intentar imprimir este sin material de soporte adicional (como estaba previsto). Las columnas laterales y las paredes brindan suficiente soporte para que estas se impriman sin estructuras de soporte adicionales.

Carcasa de refrigeración de salida (Frame_05_B y Frame_05_T)

No se requieren soportes adicionales. Simplemente coloque ambas partes con la superficie plana hacia la superficie de impresión.

Paso 3: ¡Ensamble DEMAC

¡Reúna a DEMAC!
¡Reúna a DEMAC!

Ahora que tiene todas las piezas necesarias, es el momento de empezar a montar el grupo.

Recuerde quitar el material de soporte que pueda tener en los marcos.

Paso 4: coloque el ventilador en la carcasa

Coloque el ventilador en la carcasa
Coloque el ventilador en la carcasa
Coloque el ventilador en la carcasa
Coloque el ventilador en la carcasa

Simplemente deslice el ventilador dentro de Frame_03_B (con el cable en la esquina inferior derecha), la parte inferior debe encajar dentro de las pequeñas paredes curvas que sostienen el ventilador en su lugar.

Coloque Frame_03_T con las pequeñas paredes curvas hacia abajo encima de Frame_03_B (con el ventilador ya en su lugar). Tenga cuidado de colocar la tapa más ancha de Frame_03_T mirando hacia la cara más ancha (trasera) de Frame_03_B. Los marcos deben hacer clic y las tapas deben mantenerlos en su lugar.

Paso 5: une la carcasa de la placa con la carcasa de alimentación

Únase a la carcasa de la placa con la carcasa de alimentación
Únase a la carcasa de la placa con la carcasa de alimentación
Únase a la carcasa de la placa con la carcasa de alimentación
Únase a la carcasa de la placa con la carcasa de alimentación

Coloque Frame_02 encima de Frame_04, estos dos están diseñados para encajar. Hay una pequeña abolladura en la parte inferior de Frame_02 que encaja con los conectores en la parte superior de Frame_04. Aplica una fuerza suave para conectarlos.

Paso 6: Instale la unidad de enfriamiento

Instale la unidad de enfriamiento
Instale la unidad de enfriamiento

Frame_03 (B&T) están diseñados para encajar con Frame_02, coloque el ventilador de cara a las placas (el flujo de aire debe ir hacia adentro Frame_02). Hay pequeñas abolladuras en las columnas de Frame_02 que deben coincidir con las marcas en Frame_03_B. Aplique una presión suave en las caras laterales de la estructura hasta que los marcos hagan clic.

Paso 7: coloque las placas en las bandejas de placas

Coloque las tablas en las bandejas de tablas
Coloque las tablas en las bandejas de tablas

Frame_01 tiene 4 pines que coinciden con los orificios de la placa Parallella. El tablero debe caber fácilmente en la bandeja. Dependiendo de la calibración de su impresora 3D, pueden ser demasiado grandes o demasiado pequeñas, puede usar un poco de pegamento de silicona líquida para mantenerlas en su lugar o presionarlas un poco con unos alicates para reducir el diámetro.

>> Nota importante: Recuerde colocar los disipadores de calor en el tablero <<<

Paso 8: Deslice las bandejas de la placa en la carcasa de la placa

Deslice las bandejas de la placa en la carcasa de la placa
Deslice las bandejas de la placa en la carcasa de la placa

Frame_01 proporciona ranuras que encajan en los rieles Frame_02 para cada nivel. Tenga en cuenta que solo hay un lado abierto para recibir la bandeja de la placa. También hay un pequeño aumento que ayuda a mantener Frame_01 en su lugar (honestamente, esto podría mejorar en una versión futura).

Deslice las 4 bandejas de tablas con las tablas en su lugar, 1 por cada nivel.

Paso 9: coloque la fuente de alimentación dentro de la carcasa de alimentación

Coloque la fuente de alimentación dentro de la carcasa de alimentación
Coloque la fuente de alimentación dentro de la carcasa de alimentación

Coloque la fuente de alimentación USB dentro de Frame_04 con los puertos USB hacia afuera. Hay una pequeña abertura en el otro lado para el cable de alimentación que alimenta el concentrador.

Paso 10: conecte el ventilador a la fuente de alimentación de enfriamiento

El ventilador ahora debe estar conectado a la fuente de alimentación de 12 V que proporciona energía a la unidad de refrigeración.

>> Nota importante: Mantenga el sistema de enfriamiento funcionando todo el tiempo mientras tenga las placas conectadas a la fuente de alimentación <<<

Paso 11: configurar el sistema operativo

1. Descargue el sistema operativo recomendado (Parabuntu) aquí

Hay dos revisiones de los chips (z7010 [P1600 / P1601] y z7020 [P1602 / A101040] que requieren archivos diferentes.

Para ambas revisiones, hay una versión sin cabeza (sin interfaz gráfica de usuario) y una versión que proporciona soporte HDMI y una interfaz gráfica de usuario)

Si desea utilizar la salida HDMI, recuerde obtener un cable mini-HDMI.

Puede interactuar con la versión sin cabeza a través de la red.

Puede encontrar más información y una explicación detallada aquí en el sitio web oficial.

Estos son los pasos para instalar el sistema operativo usando una distribución basada en Linux. Puede usar comandos en la terminal (sin el símbolo $) para los siguientes pasos o consultar otros procedimientos en el sitio web.

2. Instalar

- Inserte la tarjeta micro-SD en su computadora normal - Descomprima la imagen de Ubuntu. Cambie [releasename] por el nombre de la imagen.

$ gunzip -d [releasename].img.gz

3. Verifique la ruta del dispositivo de su tarjeta SD

La ruta exacta del dispositivo a su tarjeta SD depende de la distribución de Linux y la configuración de su computadora. Usando el comando a continuación para obtener el camino correcto. Si no está claro en la salida cuál es la ruta correcta, pruebe el comando con y sin la tarjeta SD insertada. En Ubuntu, la ruta devuelta podría ser algo como "/ dev / mmcblk0p1".

$ df -h

4. Desmontar la tarjeta SD Deberá desmontar todas las particiones de las tarjetas SD antes de grabar la tarjeta. [Sd-partition-path] proviene del comando "df" en el paso 3.

$ umount [ruta-partición-sd]

5. Grabe la imagen del disco de Ubuntu en la tarjeta micro-SD

Grabe la imagen en la tarjeta SD con la utilidad "dd" que se muestra en el siguiente ejemplo de comando. ¡Tenga cuidado y asegúrese de especificar la ruta correctamente ya que este comando es irreversible y sobrescribirá cualquier cosa en la ruta! Un comando de ejemplo en Ubuntu sería: "sudo dd bs = 4M if = my_release.img of = / dev / mmcblk0". Tenga paciencia, esto podría llevar un tiempo (muchos minutos) dependiendo de la computadora y la tarjeta SD que se estén utilizando.

$ sudo dd bs = 4M if = [releasename].img of = [sd-partition-path]

6. Asegúrese de que se hayan completado todas las escrituras en la tarjeta SD.

$ sincronización

7. Inserte la tarjeta SD en la ranura para tarjetas SD en la placa

Paso 12: conecte la placa a la fuente de alimentación

Utilice el cable miniUSB a USB-A para conectar una de las placas al concentrador USB. Puede etiquetar los puertos y cables o definir un orden para las conexiones en caso de que necesite desconectar una placa más adelante.

Paso 13: Configuración del enrutador

Configuración del enrutador
Configuración del enrutador

Si está realizando la instalación del sistema operativo sin cabeza mientras está en una red grande, necesitará usar un enrutador y conectarlo a Internet, las placas Parallella y su computadora personal.

Si no puede conectarse al enrutador, también puede conectar la placa directamente a su computadora usando el cable Ethernet, este procedimiento puede ser un poco más complicado y no se trataría en este instructivo.

Una vez que todo esté conectado, abra la interfaz de su enrutador para averiguar qué dirección IP se le está dando a su Parallella por defecto. Busque una pestaña que diga Red. Luego busque una sección denominada Lista de clientes DHCP. Allí debería ver su placa Parallella y su dirección IP.

Con esta dirección IP, puede SSH en Parallella y configurar una dirección IP estática.

Paso 14: Conexión a la placa Parallella con SSH

Nota: Para esta sección, [default_IP] es la dirección IP dinámica que encontró en la lista de clientes DHCP.

Verifique la conexión a la placa

$ ping [IP_predeterminada]

SSH en la placa por primera vez (la contraseña predeterminada es paralela)

$ ssh paralela @ [IP_predeterminada]

Paso 15: Configuración de la red

- Cambiar nombre de host: editar / etc / hostname

Aquí puede asignar el nombre que desee, le recomendamos que utilice NOPA ##

Donde ## identifica el número de placa (es decir, 01, 02,…)

- Establecer direcciones IP de otras placas: editar / etc / hosts

Establecer dirección IP estática: agregue el texto siguiente para /etc/network/interfaces.d/eth0

#La interfaz de red principalauto eth0

iface eth0 inet estático

dirección 192.168.10.101 #IP debe estar dentro del rango del enrutador

máscara de red 255.255.255.0

gateway 192.168.10.1 #Esta debe ser la dirección del enrutador

servidor de nombres 8.8.8.8

servidor de nombres 8.8.4.4

Una vez que hayas asignado la IP a la placa puedes reiniciar la conexión con el comando

$ ifdown eth0; ifup eth0

o reinicia la placa

Paso 16: Configuración del acceso sin contraseña y Keygen en las placas

Configure un par de claves públicas privadas en cada nodo (incluido el nodo principal). Cree una carpeta temporal, genere una nueva clave y conviértala en una clave autorizada, y agregue todos los NOPA a los hosts conocidos como se muestra a continuación.

mkdir tmp_sshcd tmp_ssh ssh-keygen -f./id_rsa

#Presione enter dos veces para configurar y confirmar una contraseña vacía

cp id_rsa.pub claves_autorizadas

para i en `seq 0 24`; hacer j = $ (echo $ i | awk '{printf "% 02d / n", $ 0}');

ssh-keyscan NOPA $ J >> hosts_conocidos; hecho

Paso 17: Instalación de Sshfs

- El uso de sshfs permite compartir archivos entre las placas del clúster. Ejecute el siguiente comando:

$ sudo apt-get install -y sshfs

- Comprobación / creación de grupo de fusibles

Compruebe si existe el grupo de fusibles:

$ cat / etc / group | grep 'fusible'

Si el grupo existe, ejecute el siguiente comando

$ bash sudo usermod -a -G fusible paralelo

- Si el grupo no existe, créelo y agregue al usuario.

$ sudo groupadd fusible

$ sudo usermod -a -G fusible paralelo

- Descomente la línea user_allow_other en el archivo fuse.config

$ sudo vim /etc/fuse.conf

Paso 18: configurar la carpeta NFS

- Modificar el archivo / etc / fstab

$ sudo vim / etc / fstab

- Reemplazar el contenido con el texto que se muestra a continuación

# [sistema de archivos] [punto de montaje] [tipo] [opciones]

sshfs # Parallella @ NOPA01: / inicio / Parallella / DEMAC_nfs / inicio / Parallella / DEMAC_nfs comentario fusible = sshfs, noauto, usuarios, exec, rw, uid = 1000, gid = 1000, allow_other, reconectar, transform_symlinks, BatchMode = sí, no vacío, _netdev, archivo de identidad = / inicio / paralela /.ssh / id_rsa, permisos_por defecto 0 0

Paso 19: conecte la placa al conmutador

Coloque el conmutador debajo del clúster o en algún lugar cercano, use cables Ethernet para conectar la placa que ya ha configurado al conmutador. También puede conectar el conmutador y su computadora al enrutador para obtener acceso al clúster.

Debería poder hacer ping y ssh en la placa que ahora está conectada al conmutador con una IP estática.

También puede agregar la IP y el nombre de host a su archivo / etc / hosts. Podrá utilizar el nombre de host para conectarse en lugar de escribir la dirección IP completa.

Paso 20: Repita los pasos 11 a 19 para cada tablero

Siga el procedimiento para configurar el sistema operativo y la red para cada placa.

>> Nota importante: ¡Utilice diferentes hostames e IP para cada placa! ¡Deben ser únicos a través de la red! <<<

Paso 21: ¡Conecte los periféricos

¡Conecte periféricos!
¡Conecte periféricos!

Asegúrese de que el ventilador esté funcionando:

Asegúrese de que el ventilador esté recibiendo energía y que el flujo de aire esté entrando en la carcasa de la placa. La conexión debe ser estable e independiente de otros elementos. Recuerde que las tablas pueden sobrecalentarse si no se enfrían correctamente.

Asegúrese de que las placas estén conectadas al interruptor:

En este punto, debería haber configurado cada placa de forma independiente. Las placas también deben estar conectadas al interruptor. El manual del conmutador debe proporcionar información que se pueda utilizar para verificar que el proceso de inicio se haya completado correctamente; puede haber algunos LED que indiquen el estado.

Conecte las placas a la fuente de alimentación:

Utilice el cable micro-USB a USB-A para conectar cada una de las placas al concentrador USB. Puede etiquetar los puertos o definir un orden en caso de que necesite desconectar una sola placa.

Paso 22: ¡Aplique energía

1. El ventilador debería estar funcionando.

2. Las placas deben estar conectadas al conmutador Ethernet.

3. Compruebe que las placas estén conectadas al concentrador USB.

4. Proporcione energía al concentrador USB.

5. ¡Habilite DEMAC!

6. ¡Beneficio!

Paso 23: Recursos de software

MPI (interfaz de paso de mensajes)

MPI es un protocolo de comunicación para programar computadoras en paralelo. Se admiten tanto la comunicación punto a punto como la colectiva.

www.open-mpi.org/

OpenMP (multiprocesamiento abierto)

La interfaz de programación de aplicaciones (API) OpenMP (Open Multi-Processing) admite la programación multiprocesamiento de memoria compartida multiplataforma en C, C ++ y Fortran, en muchas plataformas. Consiste en un conjunto de directivas del compilador, rutinas de biblioteca y variables de entorno que influyen en el comportamiento en tiempo de ejecución.

www.openmp.org/

Software de Parallella

Los desarrolladores proporcionan una pila de software de código abierto, incluido un SDK para interactuar con el acelerador.

www.parallella.org/software/

También puede encontrar manuales e información más detallada.

También tienen repositorios de GitHub:

github.com/parallella

Siéntase libre de descargar y ejecutar algunos de los ejemplos, uno de mis favoritos es el juego de la vida basado en el famoso Juego de la vida de Conway.

Descargo de responsabilidad: las definiciones se pueden copiar de wikipedia

Recomendado: