Skip to content

Efficiently finding all primes up to N with MPI parallel processing.

License

Notifications You must be signed in to change notification settings

moon1ock/MPI_primes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MPI Sieve of Eratosthenes for prime numbers below N

MIT license

MPI Installation

Linux

Beforedoing any MPI programming, make sure to load the MPI module on Unix:

$ module load mpi/openmpi-x86_64

Mac

Or, if you are using Mac, just:

$ brew install open-mpi

Module

Executable

You can make the module with <dir> $make

$ make

on make you will have an executable compiled with debug and compilation warnings turned on. -lm stands for <math.h> library inclusion.

Clean

$ make clean

this will remove the executable as well as all of the generated .txt files.

Usage

$ mpiexec -n <P> genprimes <N>

Where <P> stands for the number of MPI processes and <N> is the upper bound on the prime range.

#P vs N 1k 10k 100k 1M 10M 1B
1 0.249s 0.25s 0.273s 0.701s 10.946s Absolutely huge
2 0.265s 0.265s 0.273s 0.457s 4.485s Ridiculously big
5 0.298s 0.296s 0.301s 0.380s 1.645s Big
10 0.370s 0.372s 0.377s 0.417s 1.023s 289.819s
100 3.721s 3.766s 3.703s 3.678s 4.072s 42.161s

the numbers are averaged over 10 consecutive runs of the program.

Note: 100 processes perform worse due to the fact that for N < 1B the communication between the processes is more expensive than the computation.

These measurements were taken on a Four AMD Opteron 6272 (2.1 GHz) (64 cores), with 256GB RAM and Cent OS 7 in a virtual environment with 4GB RAM available and 1 CPU available.


Copyright 2020 Andrii Lunin.
Open source code available under MIT Licence.

About

Efficiently finding all primes up to N with MPI parallel processing.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published