Skip to content

Commit

Permalink
Add Multiprocessing
Browse files Browse the repository at this point in the history
  • Loading branch information
MitchellShibilski-Unkel committed Jan 8, 2024
1 parent 2a360fc commit 4d09480
Show file tree
Hide file tree
Showing 18 changed files with 263 additions and 0 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
130 changes: 130 additions & 0 deletions Multiprocessing/multiMergeSorting.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
import time
import multiprocessing as mp
from Sorting_Tests import mergeSort


# List to sort
list = [nums]

def multiMergeSorting(numOfCores = 6):
sort = mergeSort.mergeSort(list)

if numOfCores == 3:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
elif numOfCores == 4:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
elif numOfCores == 5:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
p5 = mp.Process(target=sort).start()
elif numOfCores == 6:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
p5 = mp.Process(target=sort).start()
p6 = mp.Process(target=sort).start()
elif numOfCores == 8:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
p5 = mp.Process(target=sort).start()
p6 = mp.Process(target=sort).start()
p7 = mp.Process(target=sort).start()
p8 = mp.Process(target=sort).start()
elif numOfCores == 10:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
p5 = mp.Process(target=sort).start()
p6 = mp.Process(target=sort).start()
p7 = mp.Process(target=sort).start()
p8 = mp.Process(target=sort).start()
p9 = mp.Process(target=sort).start()
p10 = mp.Process(target=sort).start()
elif numOfCores == 12:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
p5 = mp.Process(target=sort).start()
p6 = mp.Process(target=sort).start()
p7 = mp.Process(target=sort).start()
p8 = mp.Process(target=sort).start()
p9 = mp.Process(target=sort).start()
p10 = mp.Process(target=sort).start()
p11 = mp.Process(target=sort).start()
p12 = mp.Process(target=sort).start()
elif numOfCores == 14:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
p5 = mp.Process(target=sort).start()
p6 = mp.Process(target=sort).start()
p7 = mp.Process(target=sort).start()
p8 = mp.Process(target=sort).start()
p9 = mp.Process(target=sort).start()
p10 = mp.Process(target=sort).start()
p11 = mp.Process(target=sort).start()
p12 = mp.Process(target=sort).start()
p13 = mp.Process(target=sort).start()
p14 = mp.Process(target=sort).start()
elif numOfCores == 16:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
p5 = mp.Process(target=sort).start()
p6 = mp.Process(target=sort).start()
p7 = mp.Process(target=sort).start()
p8 = mp.Process(target=sort).start()
p9 = mp.Process(target=sort).start()
p10 = mp.Process(target=sort).start()
p11 = mp.Process(target=sort).start()
p12 = mp.Process(target=sort).start()
p13 = mp.Process(target=sort).start()
p14 = mp.Process(target=sort).start()
p15 = mp.Process(target=sort).start()
p16 = mp.Process(target=sort).start()
elif numOfCores == 18:
p1 = mp.Process(target=sort).start()
p2 = mp.Process(target=sort).start()
p3 = mp.Process(target=sort).start()
p4 = mp.Process(target=sort).start()
p5 = mp.Process(target=sort).start()
p6 = mp.Process(target=sort).start()
p7 = mp.Process(target=sort).start()
p8 = mp.Process(target=sort).start()
p9 = mp.Process(target=sort).start()
p10 = mp.Process(target=sort).start()
p11 = mp.Process(target=sort).start()
p12 = mp.Process(target=sort).start()
p13 = mp.Process(target=sort).start()
p14 = mp.Process(target=sort).start()
p15 = mp.Process(target=sort).start()
p16 = mp.Process(target=sort).start()
p17 = mp.Process(target=sort).start()
p18 = mp.Process(target=sort).start()
else:
pass

# Start timer
startTimer = time.perf_counter()
startTimer2 = time.process_time()

multiMergeSorting(numOfCores)

endTimer = time.perf_counter()
endTimer2 = time.process_time()

print(f"Task Finished In Performance: {endTimer - startTimer:0.8f}s\nTask Finished In Process/CPU/Kernel + User Space: {endTimer2 - startTimer2:0.8f}s")
128 changes: 128 additions & 0 deletions Multiprocessing/multiPrimeCounters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
import time
import multiprocessing as mp
from Algorthmic_Tests import primeCounter


def multiPrimeCounting(numOfCores = 6, countTo = 1001):
counter = primeCounter.primeCounter(countTo)

if numOfCores == 3:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
elif numOfCores == 4:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
elif numOfCores == 5:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
p5 = mp.Process(target=counter).start()
elif numOfCores == 6:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
p5 = mp.Process(target=counter).start()
p6 = mp.Process(target=counter).start()
elif numOfCores == 8:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
p5 = mp.Process(target=counter).start()
p6 = mp.Process(target=counter).start()
p7 = mp.Process(target=counter).start()
p8 = mp.Process(target=counter).start()
elif numOfCores == 10:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
p5 = mp.Process(target=counter).start()
p6 = mp.Process(target=counter).start()
p7 = mp.Process(target=counter).start()
p8 = mp.Process(target=counter).start()
p9 = mp.Process(target=counter).start()
p10 = mp.Process(target=counter).start()
elif numOfCores == 12:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
p5 = mp.Process(target=counter).start()
p6 = mp.Process(target=counter).start()
p7 = mp.Process(target=counter).start()
p8 = mp.Process(target=counter).start()
p9 = mp.Process(target=counter).start()
p10 = mp.Process(target=counter).start()
p11 = mp.Process(target=counter).start()
p12 = mp.Process(target=counter).start()
elif numOfCores == 14:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
p5 = mp.Process(target=counter).start()
p6 = mp.Process(target=counter).start()
p7 = mp.Process(target=counter).start()
p8 = mp.Process(target=counter).start()
p9 = mp.Process(target=counter).start()
p10 = mp.Process(target=counter).start()
p11 = mp.Process(target=counter).start()
p12 = mp.Process(target=counter).start()
p13 = mp.Process(target=counter).start()
p14 = mp.Process(target=counter).start()
elif numOfCores == 16:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
p5 = mp.Process(target=counter).start()
p6 = mp.Process(target=counter).start()
p7 = mp.Process(target=counter).start()
p8 = mp.Process(target=counter).start()
p9 = mp.Process(target=counter).start()
p10 = mp.Process(target=counter).start()
p11 = mp.Process(target=counter).start()
p12 = mp.Process(target=counter).start()
p13 = mp.Process(target=counter).start()
p14 = mp.Process(target=counter).start()
p15 = mp.Process(target=counter).start()
p16 = mp.Process(target=counter).start()
elif numOfCores == 18:
p1 = mp.Process(target=counter).start()
p2 = mp.Process(target=counter).start()
p3 = mp.Process(target=counter).start()
p4 = mp.Process(target=counter).start()
p5 = mp.Process(target=counter).start()
p6 = mp.Process(target=counter).start()
p7 = mp.Process(target=counter).start()
p8 = mp.Process(target=counter).start()
p9 = mp.Process(target=counter).start()
p10 = mp.Process(target=counter).start()
p11 = mp.Process(target=counter).start()
p12 = mp.Process(target=counter).start()
p13 = mp.Process(target=counter).start()
p14 = mp.Process(target=counter).start()
p15 = mp.Process(target=counter).start()
p16 = mp.Process(target=counter).start()
p17 = mp.Process(target=counter).start()
p18 = mp.Process(target=counter).start()
else:
pass

# Start timer
startTimer = time.perf_counter()
startTimer2 = time.process_time()

# Start prime counter
multiPrimeCounting(numOfCores, countTo)

endTimer = time.perf_counter()
endTimer2 = time.process_time()

print(f"Task Finished In Performance: {endTimer - startTimer:0.8f}s\nTask Finished In Process/CPU/Kernel + User Space: {endTimer2 - startTimer2:0.8f}s")
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,8 @@ IDE Links:
- This adds more complex tasks/algorithms
- Wave Function
- Prime Counter

# Multiprocessing
- This uses current tests in PyPC and uses multiprocessing to max out your CPU to test how fast your computer can process a task under heavy load
- Merge Sorting
- Prime Counting
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 4d09480

Please sign in to comment.