Skip to content

nataliasebastian/Suma-Vectorial-SIMD

Repository files navigation

SUMA VECTORIAL

Sobre el proyecto

Este proyecto contiene dos progamas C++ para el cálculo de la suma vectorial. Uno de ellos utiliza una versión tradicional de suma vectorial, mientras que el otro hace uso de intrínsecos SIMD de GCC. El objetivo de este proyecto es comparar los tiempos de ejecución de ambas versiones.

Diseñado con

Prerequisitos

  • gcc

    Linux:

    sudo apt-get install gcc

    MacOS:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    Windows:

    Descargar e instalar MinGW

Descripción de archivos

Uso

  • Primera opción:
  1. Compilar los proyectos usando GNU Compiler Collection

    g++ -O0 sumaVectorial.cpp -o nombre-ejecutable1
    g++ -O0 sumaVectorialSIMD.cpp -o nombre-ejecutable2
  2. Ejecución

    ./nombre-ejecutable1 > output.txt
    ./nombre-ejecutable2 > outputSIMD.txt
  • Segunda opción: ejecutar el .sh directamente (solo disponible para Linux y MacOS)
    ./sumaVectorial.sh
    ./sumaVectorialSIMD.sh

Resultados

Los tiempos de ejecución para distintas cantidades de sumas se guardarán en output.txt y outputSIMD.txt para la versión tradicional y la versión SIMD respectivamente.

En una de las ejecuciones obtuvimos los siguientes tiempos:

  • Versión sin SIMD: 218,508762 segundos (para 100.000 sumas)
  • Versión con SIMD: 0,881725 segundos (para 100.000 sumas)

Siendo la versión SIMD aproximadamente 192 veces más rápida que la versión tradicional.

En el archivo resultados.xlsx hemos comparado los tiempos de ejecución generando la siguiente representación gráfica:

Grafica-comparativa

Aproximadamente a partir de 248 sumas es más efectivo utilizar sumaVectorialSIMD.cpp, pues su tiempo de ejecución a penas crece con respecto al número de sumas.

Autores

Ane Romero - [email protected]

Diego Sanz - [email protected]

Natalia Sebastián - [email protected]

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published