PDF de programación - Computación en Manycores

Imágen de pdf Computación en Manycores

Computación en Manycoresgráfica de visualizaciones

Actualizado el 29 de Julio del 2018 (Publicado el 27 de Mayo del 2018)
380 visualizaciones desde el 27 de Mayo del 2018
495,9 KB
27 paginas
Creado hace 4a (14/10/2015)
Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Computación en Manycores

Metodología de la Programación Paralela

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Contenidos

1 Sistemas

2 GPGPU

3

Intel Xeon Phi

4 Prácticas

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

GPU: Graphic Processing Units
Inicialmente para procesamiento de gráficos.
También se puede hacer GPGPU: General Processing GPU

MIC: Many Integrated Cores
Alternativa de Intel a GPU: Xeon Phi.
Programación más cercana a la paralela estándar.

FPGA: Field Programmable Gate Array
Bloques lógicos reprogramables.
Son similares a circuitos integrados pero de propósito general.

DSP: digital signal processor
Hardware y software especializados para hacer operaciones
numéricas a gran velocidad.
Para procesado de señales.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

GPU: Graphic Processing Units
Inicialmente para procesamiento de gráficos.
También se puede hacer GPGPU: General Processing GPU

MIC: Many Integrated Cores
Alternativa de Intel a GPU: Xeon Phi.
Programación más cercana a la paralela estándar.

FPGA: Field Programmable Gate Array
Bloques lógicos reprogramables.
Son similares a circuitos integrados pero de propósito general.

DSP: digital signal processor
Hardware y software especializados para hacer operaciones
numéricas a gran velocidad.
Para procesado de señales.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

GPU: Graphic Processing Units
Inicialmente para procesamiento de gráficos.
También se puede hacer GPGPU: General Processing GPU

MIC: Many Integrated Cores
Alternativa de Intel a GPU: Xeon Phi.
Programación más cercana a la paralela estándar.

FPGA: Field Programmable Gate Array
Bloques lógicos reprogramables.
Son similares a circuitos integrados pero de propósito general.

DSP: digital signal processor
Hardware y software especializados para hacer operaciones
numéricas a gran velocidad.
Para procesado de señales.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

GPU: Graphic Processing Units
Inicialmente para procesamiento de gráficos.
También se puede hacer GPGPU: General Processing GPU

MIC: Many Integrated Cores
Alternativa de Intel a GPU: Xeon Phi.
Programación más cercana a la paralela estándar.

FPGA: Field Programmable Gate Array
Bloques lógicos reprogramables.
Son similares a circuitos integrados pero de propósito general.

DSP: digital signal processor
Hardware y software especializados para hacer operaciones
numéricas a gran velocidad.
Para procesado de señales.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

General-Purpose Computation on Graphics Processing
Units

Procesadores gráficos en todos los sistemas computacionales.

Muchas veces para juegos, pero también se pueden usar para
computación.

Disponen de muchos cores pequeños.

Son baratos, y se puede conseguir mayores aceleraciones a un
coste bajo.

Pero la programación es más compleja.

En algunos centros de supercomputación se incluyen GPU en
los sistemas (consultar TOP 500).

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Software para GPU

2006: NVIDIA introduce la arquitectura unificada (CUDA)
con la presentación de la NVIDIA GeForce 8800.
GPUs de NVIDIA compatibles con CUDA
Modelos: GeForce, Tesla, Quadro

2009: OpenCL, GPGPU para plataformas gráficas
Intenta convertirse en un estándar.

Hay disponibles librerías optimizadas para GPU (álgebra
lineal, ordenación, transformada de Fourier...)

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

CUDA

Arquitectura hardware y software:
Uso de GPU, construida a partir de la replicación de un bloque
constructivo básico, como acelerador con memoria integrada
Estructura jerárquica de threads mapeada sobre el hardware

Gestión de memoria explícita

Creación, planificación y ejecución transparente de miles de
threads de manera concurrente

Extensiones del lenguaje C/C++ junto con CUDA Runtime
API

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Arquitectura Hardware y Software

GPU = N * Streaming Multiprocessors (SMs)
SM = 8 * Streaming Processors (SPs)

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Arquitectura Hardware y Software

Los procesadores (SPs)
Realizan operaciones escalares sobre enteros/reales 32 bits
Ejecutan threads independientes pero todos deberían ejecutar
la instrucción leída por la Instruction Unit (IU) en cada
instante:
Single Instruction Multiple Thread (SIMT), explotación de
paralelismo de datos y, en menor medida, de tareas

Los threads son gestionados por el hardware en cada SM:
Creación y cambios de contexto con coste despreciable
Se libera al programador de realizar estas tareas

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Arquitectura Hardware y Software

Las partes del código paralelizadas para ejecutarse en la GPU
se denominan kernels

Un kernel descompone un problema en un conjunto de
subproblemas y lo mapea sobre un grid
Grid: vector 1D o 2D de thread blocks. Cada thread block
tiene su BID (X,Y) dentro del grid
Thread blocks: vector 1D, 2D o 3D de threads. Cada thread
tiene su TID (X,Y,Z) dentro de su thread block

Los threads utilizan su BID y TID para determinar el trabajo
que tienen que hacer (SPMD)

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Arquitectura Hardware y Software

Las partes del código paralelizadas para ejecutarse en la GPU
se denominan kernels

Un kernel descompone un problema en un conjunto de
subproblemas y lo mapea sobre un grid
Grid: vector 1D o 2D de thread blocks. Cada thread block
tiene su BID (X,Y) dentro del grid
Thread blocks: vector 1D, 2D o 3D de threads. Cada thread
tiene su TID (X,Y,Z) dentro de su thread block

Los threads utilizan su BID y TID para determinar el trabajo
que tienen que hacer (SPMD)

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Modelo de memoria

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Ejemplo

Cálculo de y = αx + y (saxpy):

void saxpy serial(int n,float *y,float alpha,float *x) {

for(int i=0;i<n;i++)

y[i]=alpha*x[i]+y[i];

}
/* Llamada código secuencial */
saxpy serial(n,y,2.0,x);

global

/* Código GPU */

void saxpy parallel(int n,float *y,float alpha,float *x) {

int i=blockIdx.x*blockDim.x+threadIdx.x;
if (i<n) y[i]=alpha*x[i]+y[i];

}
/* Llamada código paralelo desde código CPU */
int nblocks=(n+255)/256;
saxpy parallel<<<nblocks,256>>>(n,y,2.0,x);

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Ejecución

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Resultados experimentales

En http://dis.um.es/~domingo/investigacion.html:

Murilo Boratto, Pedro Alonso, Domingo Giménez: Using
Experimental Data to Improve Performance Modelling of the
Matrix Polynomials on Multicore and Multi-GPU, International
Conference on Computational and Mathematical Methods in
Science and Engineering, Rota, Cádiz, July 6-10, 2015.
Gregorio Bernabé, Javier Cuenca, Luis-Pedro García, Domingo
Giménez: Auto-tuning Techniques for Linear Algebra Routines
on Hybrid Platforms, extension of the paper in ICCS 2014,
Journal of Computational Science, published on-line April
2015.
Gregorio Bernabé, Javier Cuenca, Domingo Giménez: An
Autotuning Engine for the 3D Fast Wavelet Transform on
Clusters with Hybrid CPU+GPU Platforms, International
Journal of Parallel Programming, published online 15 October
2014.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Resultados experimentales

En http://luna.inf.um.es/grupo investigacion:

Proyectos de Tomás Ramírez y Carlos Pérez, sobre cálculo de
funciones de Green, 2011 y 2012.
Tesis de Máster de Baldomero Imbernón, Técnicas heurísticas
paralelas en acoplamiento de compuestos bioactivos, UMU,
2015.
Tesis doctoral de Murilo do Carmo Boratto, Modelos paralelos
para la resolución de problemas de ingeniería agrícola, UPV,
2015.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Características

Hasta 61 cores (1.0/1.3
GHz), basados en x86
(Pentium) direccionamiento
de 64 bits.

Cores con una VPU con 32
registros de 512 bits
(SIMD).

Cada core soporta 4 threads
por hardware.

Interconexión de bus en
anillo bidireccional.

Hasta 6 GBytes GDDR5.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Software

Intel MPSS (Manycore Platform Software Stack):
permite que los programas se ejecuten y se comuniquen con el
coprocesador Intel Xeon Phi.

Compiladores Offload: Intel C/C++ y Fortran 2013
Capaces de generar código que se ejecuta sólo en el host o en
el coprocesador,
o parejas de binarios que se ejecutan tanto en el host como en
el coprocesador y se comunican entre ellos.

Entornos de programación paralela,
los mismos que en el host: Intel Threading Building Blocks,
Pthreads, OpenMP, MPI.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Funcionamiento

El coprocesador tiene memoria flash y SMC para almacenar la
BIOS, el bootloader, el firmware y un pequeño kernel
embebido para el coprocesador.

El coprocesador ejecuta un microkernel de Linux.

El kernel embebido se carga desde la flash cuando el
coprocesador se inicializa.

El microkernel de Linux se carga desde el host cuando el
coprocesador se arranca.

El coprocesador no dispone de acceso a un sistema de
archivos permanente. Los sistemas de archivos son RAM
(residente en la memoria del coprocesador) o sistemas de
archivos en red (montado vía NFS desde el host).

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Ejecución

Modos de ejecución:

Código offload:
Ejecución en el host y lanza trabajos al coprocesador.
No se necesita que el usuario esté dado de alta en el
coprocesador.

Código nativo:
Se lanza la ejecución desde el coprocesador.
En OpenMP código idéntico al de multicore.

Sistemas

GPGPU

Intel Xeon Phi

Prácticas

Ejemplo de código offload

Secuencial:

double reduction(double *data, int size) {

double ret = 0.0;
#pragma offload target(mic) in(data:length(size))
for (int i = 0; i < size; i++) {

ret += data[i];

}
return ret;

}

En OpenMP:

double omp_reduction(double *data, int size) {

double ret = 0.0;
#pragma offload target(mic) in(data:length(size)) {

#pragma omp parallel for reduction(+:ret)
  • Links de descarga
http://lwp-l.com/pdf11352

Comentarios de: Computación en Manycores (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