Skip to content

Parallelism standards for accelerating performance on calculations

Notifications You must be signed in to change notification settings

z1skgr/SIMD-instruction-MPI-PTHREADS-parallism

Repository files navigation

SIMD-instructions/parallism

Parallelism standards for accelerating performance on calculations

Table of contents

General Information

Streaming SIMD Extensions (SSE), MPI and Pthreads for parallelization the calculation of a simplified form of OMEGA statistical, to detect positive selection in DNA sequences.

Repeated for a set of N DNA sites, extract statistical OMEGA outputs

BONUS: Implementation of a different memory layout for better performance with SSE commands.

Features

  • Reference
  • SSE instructions
  • Parallel standards (pthreads/MPI) + SSE

Benchmarked on Intel(R) Core(TM) i7-1065G7 @ 1.30GHz 1.50 GHz with 8GB DDR3 memory.

Prerequisites

SIMD
MPI

How to run

  1. GCC installation
$ gcc --version
$ sudo apt install gcc

Supposing you can navigate the proper folder to compile the desired source code from the terminal

Reference

gcc -o reference reference.c
./reference 'N'

SSE

gcc -o jam jam.c
./jam 'N'
gcc -o unroll unroll.c
./unroll 'N'

Add -msse4.2 library

gcc -o SSE SSE.c -msse4.2
./SSE 'N'

Pthreads

gcc -pthread SSE_pthreads.c -o SSE_pthreads -msse4.2
./SSE_pthreads 'N' 'N_threads'

MPI

mpicc -pthread SSE_Mpthreads.c -o SSE_Mpthreads -msse4.2 -lm
lamboot -v host
mpiexec -n 'N_proc' ./SSE_Mpthreads 'N' 'N_threads'

Bonus

gcc -o bonus bonus.c -msse4.2
./bonus 'N'

Setup

Script variables initialized as:

  • N = 10000000.
  • Threads = [2 4]
  • Processors = [2 4].

Acknowledgements

  • This project was created for the requirements of the lesson Architecture of Parallel and Distributed Computers

Releases

No releases published

Packages

No packages published