Coder Social home page Coder Social logo

so-lab3-20201's Introduction

SO-Lab3-20201: Paralelización de la función SAXPY.

Objetivos

Paralelizar el código presentado haciendo uso de hilos con la librería pthreads.

SAXPY

La función SAXPY (single-precision A*X plus Y) es una función básica en el álgebra lineal. Esta función es usada recurrentemente para el desarrollo de métodos numéricos, en el procesamiento de señales, etc.

La función saxpy desarrolla la multiplicación de un valor escalar a por un vector X, luego el resultado se suma a un vector Y, el resultado usualmente es almacenado nuevamente en el vector Y, de esta manera la formulación es la siguiente:

Y = a * X + Y

Aunque la función saxpy no es particularmente difícil a nivel computacional, cuando se tiene una gran cantidad de datos a procesar puede ser ser usada como ejemplo para explorar la programnación paralela.

En el ejemplo presentado en este laboratorio, vamos a implementar una función saxpy iterativa, con el fin de obtener un tiempo de ejcución adecuado para el desarrollo de este ejercicio:

para un número máximo de iteraciones max_iters haga: 
    Y = a * X + Y 
fin

Con el fin de hacer el ejercicio más divertido, el programa base propuesto, también calcula los valores promedio de cada iteración de Y.

Compilación y ejecución

Modo DEBUG

make clean
make DEBUG=1
./saxpy

Modo RELEASE

make clean
make DEBUG=0
./saxpy

Pasos sugeridos para el desarrollo del laboratorio

  1. Clone este repositorio, compile y ejecute el código, trate de entenderlo, no es difícil.
  2. Defina una estrategia para el desarrollo de la versión paralela: ¿Cuál es la mejor forma de dividir el trabajo entre los hilos disponibles?
  3. Desarrolle una primera versión paralela dividiendo el trabajo entre solo 2 hilos, verifique que el código siguee funcionando correctamente (comparando el resultado con una cversión secuencial) y luego verifique que el tiempo de ejecución disminuye en la versión paralela.
  4. Implemente un versión paralela que distribuya el trabajo de manera automática para un número n de hilos. Se realizarán pruebas para n = 1, 2, 4, y 8 hilos.
  5. Desarrolle un informe donde evalue el desempeño su versión paralela, tomando el tiempo de ejecución del programa utilizando varios hilos, y desarrollando varias repeticiones (mínimo 10 por caso), grafique los resultados y analice las gráficas.

Fecha de entrega: Jueves 10 de Diciembre de 2020

so-lab3-20201's People

Contributors

dannymrock avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.