ac_enunciado_lab1_2014_v1.0

8
  Área de Arquitectura y Tec nología de Computadores Universidad Carlos III de Madrid Arquitectura de Computadores  Laboratorio 1. Técnicas de paralel ización en ar quitecturas de memoria compartida. OpenMP. Grado en Ingeniería Informática Curso 2014/2015

description

Enunciado

Transcript of ac_enunciado_lab1_2014_v1.0

  • rea de Arquitectura y Tecnologa de Computadores

    Universidad Carlos III de Madrid

    Arquitectura de Computadores Laboratorio 1. Tcnicas de paralelizacin en arquitecturas de

    memoria compartida. OpenMP.

    Grado en Ingeniera Informtica

    Curso 2014/2015

  • 1. Objetivos

    El objetivo de esta prctica es la introduccin de tcnicas de paralelizacin en

    arquitecturas de memoria compartida. Este tcnica permite aprovechar de manera ms

    ptima el hardware actual, especialmente las computadoras multi-ncleo y multi-core.

    Como ejemplo de aplicacin de paralelizacin, el alumno deber paralelizar un

    cdigo secuencial utilizando OpenMP.

    2. Descripcin

    En esta prctica se deber implementar una versin paralela del problema de N-

    cuerpos.

    Este problema implica simular el movimiento de N cuerpos movindose bajo las

    fuerzas gravitatorias que ejerce cada cuerpo sobre todos los dems. El cmputo se de-

    bera discretizar en el tiempo, es decir, la simulacin implica varios pasos de tiempo.

    En cada paso de tiempo, el programa calcula las fuerzas gravitatorias que se

    ejercen sobre cada cuerpo por todas las dems y actualiza la posicin y velocidad de

    cada uno de los cuerpos.

    La fuerza gravitatoria se calcula con la siguiente frmula:

    F = K * m1 * m2 / ( r * r )

    donde m1 y m2 son las masas de los dos cuerpos y r es la distancia que las separa.

    La fuerza gravitatoria se usa para actualizar la nueva posicin y velocidad de los

    cuerpos de la siguiente forma: para cada cuerpo i, la fuerza F se calcula y descompone en sus componentes Fxi y Fyi. Estas componentes se suman, obtenindose la fuerza gravi-tatoria total que se aplica a un cuerpo, Fx y Fy. A partir de estos valores se calculan las correspondientes aceleraciones, ax y ay, y velocidades, vx y vy, a lo largo de los ejes X e Y (ax = fx / m y vx = ax * t), donde t es el paso de tiempo.

    La simulacin se realiza en un espacio bidimensional. Los valores de entrada de

    la simulacin se proporcionan en un fichero que consiste de dos partes:

    Una cabecera que contiene los parmetros globales: n: el nmero de cuerpos. k: la constante gravitatoria K. t: el intervalo de tiempo entre pasos. nsteps: el nmero de pasos de la simulacin. d: el umbral de distancia mnimo (explicado a continuacin). xmax: X mxima (explicado a continuacin).

    ymax: Y mxima (explicado a continuacin).

  • Una regin de datos con la lista de cuerpos que formarn parte del experimento, cada uno descrito por los siguientes parmetros:

    x: la posicin inicial en el eje X.

    y: la posicin inicial en el eje Y.

    vx: la velocidad inicial en la direccin del eje X (puede ser negativa).

    vy: la velocidad inicial en la direccin del eje Y (puede ser negativa).

    m: la masa del cuerpo.

    Suposiciones:

    Dos cuerpos que estn cerca, por debajo de un umbral d, no se atraen mutuamente (se asume as para simplificar el tratamiento de la colisin de

    los cuerpos). Por tanto, el cuerpo continuar movindose con la misma

    velocidad que antes.

    El espacio es finito: la esquina inferior izquierda es (0, 0) y la superior derecha es (xmax, ymax). Si la posicin actualizada del cuerpo est fuera del

    espacio, consideraremos que colisiona con el borde exterior y cambia la

    direccin con el mismo ngulo que el ngulo de impacto.

  • 3. Requisitos de programacin

    Se debe implementar un programa paralelo en OpenMP que realice eficientemente

    los clculos. Se proporciona una versin secuencial del programa, que toma como

    parmetro un fichero que contiene los parmetros de la simulacin y una lista de

    atributos de cuerpos como se explic anteriormente.

    El programa recibir tres argumentos:

    ./nbody

    Siendo:

    ruta del fichero con la distribucin inicial de

    cuerpos.

    ruta del fichero resultante con la distribucin final

    de cuerpos.

    X11_0 si el funcionamiento es en modo texto y X11_1

    si es grfico.

    Se podr modificar el fichero nbody.c tanto como se desee siempre que el

    programa paralelo conserve exactamente la misma funcionalidad que el programa

    secuencial independientemente del nmero de hilos con que se ejecute y, al menos,

    mejore el rendimiento del programa secuencial cuando se ejecute con ms de un hilo.

    La calidad de la paralelizacin del cdigo determinar la calificacin de este apartado.

    El cdigo no deber utilizar la funcin set_num_threads(). El nmero de

    hilos de OpenMP depender siempre de la variable de entorno OMP_NUM_THREADS.

  • 4. Requisitos de la memoria

    4.1 Descripcin del cdigo

    En este apartado se detallar el diseo de la estrategia de paralelizacin implementada en el cdigo. Deber contener, al menos, la explicacin general del

    diseo de la paralelizacin as como la explicacin y justificacin de cada uno de los

    pragmas de OpenMP utilizados: por qu es necesario, por qu est situado en esa

    posicin, qu ventajas aporta y/o qu problemas resuelve, etc.

    4.2 Evaluacin de rendimiento

    Se proporcionan tres ficheros de entrada distintos input1, input2, input3 con

    distintas caractersticas. Se debe analizar el contenido de los ficheros y realizar varias

    ejecuciones evaluando los resultados de rendimiento.

    4.2.1 Ejercicios a realizar 1.- Ejecute el programa paralelo con 1, 2, 4, 8 y 16 threads para cada uno de los conjuntos de entrada. Represente los tiempos de forma grfica y comente los resultados. Cul es la evolucin de rendimiento? Por qu? Qu diferencias hay entre los distintos conjuntos de entrada? Cmo afectan estas diferencias al rendimiento? 2.- Calcule el speedup obtenido en el apartado anterior para cada uno de los casos y represntelo de forma grfica. Comente los resultados. 3.- Tome tiempos con 4 threads variando el tipo de scheduling del bucle que ms afecte al rendimiento del programa. Ejecute las pruebas con static, dynamic y guided para cada uno de los conjuntos de entrada. Represente los tiempos obtenidos de forma grfica y comente los resultados. Cul es la evolucin de rendimiento? Por qu? Qu diferencias hay entre los distintos conjuntos de entrada? Cmo afectan estas diferencias al rendimiento? Qu planificador se comporta mejor en cada uno de los casos? Justifquelo rzonadamente. 4.- Averige y justifique razonadamente cul es el tamao de chunk ptimo para cada uno de los tres casos propuestos. NOTA: Las mediciones de las pruebas de evaluacin se realizarn en las aulas del departamento de informtica. EN NINGN CASO SE PUEDE UTILIZAR

    GUERNIKA COMO PLATAFORMA DE PRUEBAS.

  • 4.2.2 Ejercicios opcionales 1.- Realice de nuevos los puntos 1 y 2 del anterior apartado en una mquina externa a

    las aulas de los laboratorios de informtica. Se debe especificar el tipo de procesador

    utilizado y justificar las diferencias de rendimiento con respecto al original en caso de

    que las hubiera.

    2.- Por qu en algunas ocasiones los resultados de salida de la aplicacin varan entre

    ejecuciones consecutivas con ms de un hilo sin modificar los parmetros de ejecucin?

    Por qu esta variacin tiene ms impacto cuanto mayor es el nmero de iteraciones?

    Por qu slo ocurre con la versin paralela y no con la versin secuencial?

    Se recomienda la lectura del artculo: What every computer scientist should know about floating-point arithmetic de David Goldberg, disponible en http://dl.acm.org/citation.cfm?id=103163 a travs de la suscripcin de la biblioteca de la

    universidad.

  • 5. Entrega

    La entrega del cdigo y de la memoria se llevar a cabo mediante aula global

    utilizando los entregadores disponibles para cdigo y memoria respectivamente.

    Cdigo

    Se debe entregar un archivo en formato zip con el nombre

    infoac_openmp_code_AAAAAAAAA_BBBBBBBBB.zip donde AA y BB son los NIAs de los integrantes del grupo. El fichero contendr:

    nbody.c (configurado con scheduler static).

    Makefile

    Memoria

    Se debe entregar un archivo en formato pdf con el nombre

    infoac_openmp_AAAAAAAAA_BBBBBBBBB.pdf donde AA y BB son los NIAs de los integrantes del grupo.

    Es necesario que la memoria contenga los siguientes apartados:

    Portada con los datos de los autores (Nombre completo, NIA y grupo)

    ndice

    La memoria deber tener un apartado por cada requisito de la memoria.

    Respuesta a las preguntas planteadas en cada apartado. Es necesario copiar el enunciado de la pregunta antes de responder a la misma.

    Conclusiones

    No descuide la calidad de su memoria, ya que ser el elemento principal utilizado

    para su calificacin. Todas las respuestas debern estar correctamente justificadas.

    Normas

    1) Las prcticas que no compilen o que no se ajusten a los requisitos, obtendrn una calificacin de 0.

    2) Cualquier warning que aparezca durante la compilacin podr afectar a la calificacin del cdigo.

    3) Un programa que no se ajuste a los requisitos planteados, obtendr una calificacin de 0.

    4) Todo cdigo entregado deber contener comentarios explicativos, en caso contrario, la calificacin podr verse afectada.

  • 5) El cdigo deber funcionar en las instalaciones del departamento de informtica (laboratorios y/o guernika). Es responsabilidad del alumno

    asegurarse de que el cdigo entregado funciona correctamente en dichas

    instalaciones.

    6) La entrega de la prctica se realizar a travs de Aula Global. No se permite la entrega a travs de correo electrnico sin autorizacin previa.

    7) Todos los resultados y grficas que se expongan en la prctica debern ser presentados de una forma fcilmente legible y debern estar comentados.

    8) La calidad de los comentarios de los resultados y grficas son tan importantes como los resultados en s mismos. El objetivo de la memoria es

    aplicar los conocimientos adquiridos en la asignatura a un caso prctico real.

    9) Se prestar especial atencin a la originalidad de las prcticas. En caso de detectarse copia completa o parcial del cdigo o la memoria se obtendr una

    calificacin de 0 y, por tanto, se suspender la parte prctica de la asignatura

    a los grupos involucrados. Adicionalmente, se podr sancionar mediante el

    procedimiento administrativo establecido por la universidad.