PDF de programación - Programación Paralela y Computación de Altas Prestaciones

Imágen de pdf Programación Paralela y Computación de Altas Prestaciones

Programación Paralela y Computación de Altas Prestacionesgráfica de visualizaciones

Publicado el 30 de Julio del 2018
203 visualizaciones desde el 30 de Julio del 2018
954,7 KB
15 paginas
Creado hace 3a (26/10/2016)
https://www.flickr.com/photos/125992663@N02/14597682251/

Programación Paralela y Computación de Altas
Prestaciones
Departamento de Informática y Sistemas

Control de Plataformas de Stewart y programación en
Raspberry Pi

Murcia, Octubre 2016

Agenda

1. Motivación

2. Conceptos matemáticos

3. Descripción del problema

4. Metodología

5. Raspberry Pi

6. Otras opciones de paralelismo con Pi



3
4

6

8

(1 diap.)
(2 diap.)



(2 diap.)



(3 diap.)

11



(3 diap.)

14



(1 diap.)



2

Motivación

• Se ha identificado un problema en robótica que requiere un alto

coste computacional para su resolución

• En concreto se trata de modelar una Plataforma de Stewart (un

tipo de robot manipulador paralelo)

• Se controlan los 6 grados de libertad, tres de posición (x y z) y

tres de orientación (θ ψ ϕ), de una parte del mecanismo, en
concreto el terminal

• Se usan en la simulación de sistemas

mecánicos, como por ejemplo:

o Barcos
o Aviones
o Helicópteros

3

Conceptos matemáticos utilizados

• Imprescindibles: el álgebra lineal y los sistemas de coordenadas

espaciales, y sus transformaciones

• Se debe poder:

o Expresar la situación de los cuerpos del robot, los unos

respecto a los otros

o Especificar la situación que debe tomar el sistema de

coordenadas del terminal, así como su velocidad

• Cinemática directa e inversa:

modelos matemáticos para
calcular la relación entre la
posición de los actuadores y
el elemento final, y viceversa

4

Conceptos matemáticos utilizados

• Ej. Cinemática directa:



• Todas las coordenadas son referenciadas respecto a la base
• La configuración mecánica (actuadores y bielas) determina:

o Las ecuaciones de traslación y rotación
o Las ecuaciones de restricción (p.e. posiciones máximas

alcanzables según la longitud de los elementos)

o Que pueden aportar soluciones múltiples, Ej:

5

Descripción del problema

• Se deben resolver los sistemas de ecuaciones planteadas
• Nuestro robot está formado por 6 brazos, cada uno con un
actuador rotativo y una biela. Empleando notación matricial:

o Las ecuaciones del terminal se pueden expresar como

matrices de 12x12

o Las ecuaciones de las manivelas se pueden expresar como

matrices de 18x18

• Se usa un método iterativo obteniendo pequeños Δ que se

suman a la posición actual, hasta obtener un error menor a un
valor prefijado. El caso de no convergencia es controlado por
un tiempo límite de ejecución

• Primero se calcula el terminal, y luego los brazos, que no

tienen dependencia entre ellos  PARALELIZACION

6

Descripción del problema

7

Metodología

• La UPCT de Cartagena nos entrega la versión secuencial del
programa de control del robot en Intel© Fortran, desarrollado
con Microsoft© Visual Studio, usando la librería MKL (Lapack)
• Analizamos la estructura del código fuente e identificamos las

rutinas de cálculo y las funciones de álgebra matricial: DGETRF
(factorización LU) y DGETRS (resolución de sistemas)

• Desarrollamos un simulador que contiene la misma carga de

computación que el original, pero le añadimos la opción de:

o Tomar tiempos de ejecución
o Parametrizar el tamaño del problema: dimensión de las
matrices, número de grupos estructurales y número de
iteraciones

o Poderse ejecutar en secuencial o en paralelo, para

comparativas

8

Metodología

Los datos de los grupos estructurales se almacenan en arrays
indexados por número de grupo  podemos abordar paralelismo en
memoria compartida

Ejemplo OpenMP de llamadas al cálculo de cada brazo o grupo
estructural:

9

Metodología

10

Raspberry Pi

11

Raspberry Pi

• El sistema operativo usado en las pruebas ha sido Raspbian, una

versión de Linux basada en Debian y optimizada para el
hardware de las Pi

• La portabilidad del código fuente desde Intel© Fortran en

Windows© hacia GNU Fortran sobre Raspbian supuso los
siguientes cambios:

o Incluir el parámetro -std=legacy para asegurar la

compatibilidad de algunas funciones

o Prescindir del uso de la librería MKL ya que no es posible

instalar el SDK de Intel©. En su lugar instalaremos la
liblapack-dev

o Reemplazar la función QueryPerformanceCounter (propietaria de

Windows©) por una librería desarrollado en C para la toma
de tiempos de ejecución

GNU Fortran soporta OpenMP desde la versión 4.9

12

Raspberry Pi

Escenario de test:
• Número de ejecuciones: 300 iteraciones
• Bucle secundario (simulando la búsqueda de un error por debajo de una

tolerancia prefijada): 20 iteraciones
• Variando tamaños de las matrices

13

Otras opciones de paralelismo con Pi

Cluster MPI

https://www.lab7.io/rpi-cluster-1/

14

http://pixabay.com/es/pregunta-signo-de-interrogaci%C3%B3n-298479/

15
  • Links de descarga
http://lwp-l.com/pdf12805

Comentarios de: Programación Paralela y Computación de Altas Prestaciones (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad