Davide95 / Primen

Primen is an educational software that implements prime factorization with distributed computing and parallel computing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Primen

Primen is an educational software that implements prime factorization (using trial division) with distributed computing (using MPI.NET) and parallel computing (using System.Threading.Tasks).

For instance Primen can factorize a product of two prime numbers in order to obtain an RSA private key from a public key.

How to use it

Before using it, you need to install:

Then download the latest Primen release from https://github.com/Davide95/Primen/releases, unzip it and start smpd on each machine typing

smpd -d

Afterwards run

mpiexec -hosts N machine1 machine2 machineN 'C:\directory\where\it\was\unzipped\Primen.exe'

on one of the machines.

For example, if you have 2 hosts called mOne and mTwo and the directory where you unzipped Primen is "C:\Primen", you have to type

mpiexec -hosts 2 mOne mTwo C:\Primen\Primen.exe

How to test it

Open a PowerShell window, go to the bin/Debug folder in Primen's project and run

.\Scripts\debug.ps1

Benchmark

I ran this software on 24 PCs connected to eatch other through a switch in a classic LAN. They factorized 4951760154835678088235319297 (94 bits) in about 5 minutes.

How to Engage, Contribute and Provide Feedback

  1. If you want to contribute, make sure that there is a corresponding issue for your change first. If there is none, create one.
  2. Create a fork in GitHub.
  3. Create a branch off the master branch with an adequate name.
  4. Commit your changes and push your changes to GitHub.
  5. Create a pull request against the origin's master branch.

###DOs and DON'Ts

License

This project is licensed under the MIT license.

BigIntegerExtender is available as oper-source software under the [MIT license](BigintegerExtender LICENSE).

MPI.NET is available as open-source software under the [Boost Software License](MPI.NET LICENSE), which is a BSD-like license.

About

Primen is an educational software that implements prime factorization with distributed computing and parallel computing

License:MIT License


Languages

Language:C# 98.9%Language:PowerShell 1.1%