Parallelism standards for accelerating performance on calculations for detection of positive DNA selection
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
The above calculations are repeated iteratively for a set of N DNA sites,
Interested for
BONUS: Implementation of a different memory layout for better performance with SSE commands.
- Reference
- SSE instructions
- Parallel standards (pthreads/MPI) + SSE
The implementation was guided by the reference file Benchmarked on Intel(R) Core(TM) i7-1065G7 @ 1.30GHz 1.50 GHz with 8GB DDR3 memory.
- GCC installation
$ gcc --version
$ sudo apt install gcc
Supposing you can navigate the proper folder to compile the desired source code from the terminal
gcc -o reference reference.c
./reference 'N'
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'
gcc -pthread SSE_pthreads.c -o SSE_pthreads -msse4.2
./SSE_pthreads 'N' 'N_threads'
mpicc -pthread SSE_Mpthreads.c -o SSE_Mpthreads -msse4.2 -lm
lamboot -v host
mpiexec -n 'N_proc' ./SSE_Mpthreads 'N' 'N_threads'
gcc -o bonus bonus.c -msse4.2
./bonus 'N'
Script variables initialized as:
- N = 10000000.
- Threads = [2 4]
- Processors = [2 4].
- This project was created for the requirements of the lesson Architecture of Parallel and Distributed Computers