120 likes | 252 Vues
This study, conducted by Yves Wouters and Pieter-Jan Huyghe, examines the performance of single-threaded versus multi-threaded algorithms for Boggle word searching. Using a search tree and backtracking methodology, we measured the computational efficiency with various CPU configurations. The results showed improvements in speed with multi-threaded execution on multiple cores, exhibiting a significant speedup. We also delved into accuracy measurements, and the impact of threading methodologies. The findings illuminate the advantages and challenges associated with parallel processing in solving Boggle.
E N D
Performance evaluation Single vs multi-threaded boggle word searching Yves Wouters & Pieter-Jan Huyghe
Boggle? Wat is boggle Het algoritme: search tree & backtracking
Boggle? Wat is boggle Het algoritme: search tree & backtracking
Performantiemeten • Meten hoe snel de berekeningvolbracht is. • Strevennaarnauwkeurigheid…hoe?
Nauwkeurigheid? • Gemiddeldenberekenen • Eigen timer • Ahv kernel32.dll • (#cycle end - #cycle start)/MHz cpu = tijdsduur • Dusindien de CPU 1 GHz snel is, dan kun je meten tot op 1 nano sec nauwkeurig.
Single threaded vs Multi threaded • Run op 1 core, 2.2GHz • Specs boggleveld: 450 chars • Tijdsduursinglethreaded: 269ms, 100 loops. • Tijdsduur multithreaded: 296ms, 100 loops.
Single threaded vs Multi threaded • Run op 2 cores, 2.4GHz • Specs boggleveld: 450 chars • Tijdsduursinglethreaded: 183ms (blauw) • Tijdsduur multithreaded: 134ms (oranje)
Single threaded vs Multi threaded • Run op 8 cores, 2.8GHz • Specs boggleveld: 450 chars • Tijdsduursinglethreaded: 146.2ms (blauw) • Tijdsduur multithreaded (4): 60.4 (oranje)
Speedup: Single vs multithreaded • 1 core 0.90 • 2 cores 1.36 • 4 cores 2.42
Verdere tests • Run met 4 threads, methodiek test • Threadpool: 55.84ms • Parallel Task Library: 60.66ms • Eigen threading: 100.11ms
Verdere tests • Events vs Locking • Events: 286,9ms • Locking 279,9ms • Verschil is marginaal
Verdere tests First come first served principe, sommige threads krijgendus weinig tot geen CPU tijd.