Professional Documents
Culture Documents
2curso
curso // 2
2 cuatr.
cuatr.
Arquitectura de Computadores
Grado
Grado enen
Ing.Informtica
Ing. Informtica Tema 1
Fundamental
Seccin 7.1. J. Ortega, M. Anguita, A. Prieto. Arquitectura de
Computadores, Thomson, 2005. ESIIT/C.1 ORT arq
Complementaria
Secciones 3.7.1, 3.7.2. T. Rauber, G. Rnder. Parallel
Programming: for Multicore and Cluster Systems. Springer
2010. Disponible en lnea (biblioteca UGR):
http://dx.doi.org/10.1007/978-3-642-04818-0
Niveles de
paralelismo implcito
en un cdigo que
resuelve la aplicacin
Clasificacin
del
paralelismo
Paralelismo de
tareas
implcito
Granularidad
paralelismo de
datos
for ( ){ while( ){
Bucle (bloques) Grano
... ...
} } Medio-Fino
Imagen
dividida en
bloques de 8x8
pxeles
coseno inversa
Descodificador
Cuantificacin
Transformada
de entropa
Conversin
inversa
a RGB
Secuencia de Secuencia de
Bloques de 8x8 Bloques de 8x8
pxeles pxeles
comprimidos descomprimidos
9 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Paralelismo de datos y paralelismo de
tareas en OpenMP (Prcticas 1, 2 y 3)
AC
Func1() {}
Programa Func2() {
#pragma omp parallel for
for (i=0;i<N;i=++){
Func1() Func2() Func3() cdigo para i
}
{ { {
}
... ... ... Func3() {}
} } } Main () {
#pragma omp parallel sections
while( ){ for( ){ { #pragma omp section
... ... Func1();
} } #pragma omp section
Func2();
#pragma omp section
Func3();
}
}
10 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Paralelismo implcito (nivel de deteccin),
explcito y arquitecturas paralelas
AC
TLP
(Multicomputador Programa1 Programa2
Multiprocesador, Procesos
Multithread)
DLP (SIMD,
for ( ){ while( ){ IntraInstr.
GPU)
... ...
} }
ILP (segmentadas,
superescalares, VLIW) Instrucciones
* + /
11 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Nivel de paralelismo explcito.
Unidades en ejecucin en un computador
AC
Instrucciones
La unidad de control de un core o procesador gestiona la
ejecucin de instrucciones por la unidad de procesamiento
Thread o light process (concepto del SO)
Es la menor unidad de ejecucin que gestiona el SO
Menor secuencia de instrucciones que se pueden ejecutar
en paralelo o concurrentemente
Proceso o process (concepto del SO)
Mayor unidad de ejecucin que gestiona el SO
Un proceso consta de uno o varios thread
Rn Cdigo Cdigo
Rn Heap
Heap Var. globales
R1 Var. globales Pila y estticas
IP
IP y estticas
thread Ficheros
Ficheros
Rn Tablas-
Tablas- Pila pginas
Pila pginas IP
thread
Proceso: comprende el cdigo del programa Un proceso puede constar de mltiples
y todo lo que hace falta para su ejecucin: flujos de control, llamados threads o
Datos en pila, segmentos (variables globales y procesos ligeros. Cada thread tiene:
estticas) y en heap Su propia pila
Contenido de los registros Contenido de los registros, en particular el
Tabla de pginas contador de programa o instruction pointer y
Tabla de ficheros abiertos el puntero de pila o stack pointer
Para comunicar procesos hay que usar Para comunicar threads de un proceso se
llamadas al SO usa la memoria que comparten
13 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Nivel de paralelismo explcito.
Threads versus procesos II
AC
Destruccin Conmutacin
de threads en en menor
menor tiempo tiempo
Creacin de Comunicacin
threads en en menor
menor tiempo Menor tiempo
granularidad
para threads
DETECTABLE a
Programas Funciones Bucle (Bloques) Operaciones
nivel de
IntraInstr.
UTILIZADO Instrucciones
(explcito) a nivel
de threads
Procesos
Paralelismo
SIMD
IMPLEMENTADO ILP
por arquitecturas Multithread
(aprovechado) Multiprocesador
Multicomputador
EXTRAIDO Arquitectura
por Herramienta de programacin
Implcito-> Explcito
Usuario - Programador
15 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Para ampliar
AC
Pginas Web:
http://en.wikipedia.org/wiki/Instruction-level_parallelism
http://en.wikipedia.org/wiki/Task_parallelism
http://en.wikipedia.org/wiki/Data_parallelism