Comparison of sequential and parallel architectured run times for project euler problems

Material Information

Comparison of sequential and parallel architectured run times for project euler problems
McLauthlin, Andrew Bradford ( author )
Place of Publication:
Denver, CO
University of Colorado Denver
Publication Date:
Physical Description:
1 electronic file (211 pages). : ;

Thesis/Dissertation Information

Master's ( Master of Science)
Degree Grantor:
University of Colorado Denver
Degree Divisions:
Department of Computer Science and Engineering, CU Denver
Degree Disciplines:
Computer Science
Committee Chair:
Alaghband, Gita
Committee Co-Chair:
Ra, Ilkyeun
Committee Members:
Stilman, Boris


Subjects / Keywords:
Programming languages (Electronic computers) ( lcsh )
C++ (Computer program language) ( lcsh )
Java (Computer program language) ( lcsh )
bibliography ( marcgt )
theses ( marcgt )
non-fiction ( marcgt )


The aim of this thesis is to take a semi random assortment of computer science problems and test solution times in serial programming (C++) vs parallel architecture programming (OpenCL) for GPU's (Graphics Processing Units). To this end, the first forty problems from Project Euler were selected as the problem set, C++ was chosen as the main serial language, and OpenCL as the parallel language. As a Java programmer at work, it seemed interesting to also attempt solutions in Java to compare C++ to Java among the same problem sets with similar solution styles. Finally, this thesis seemed a perfect candidate to present on the web for discussion among interested parties. The conclusion of the research showed Java to be a little faster than expected. It generally was about twice as slow as C++ for any given solution, but where it did end up being faster, it was largely in file I/O and string operations. OpenCL also was a little slower than C++ in median execution speeds and much slower in median run times, suggesting that for general problems where nothing is known about the problem, C++ is usually a better choice. However, the type of problem made a huge difference in execution speeds between the two languages. If a problem had thousands or millions of answers to check and was at all parallelizable (or was able to be massively parallel), OpenCL was incredibly fast. Similarly, if a problem was inherently serial, tiny, or even closed form, C++ won handily. This thesis should be interesting to those who simply enjoy solving abstract problems, those who are curious about Java vs C++ speeds, those who are interested in seeing when parallel programming might beat out standard serial programming and for what types of problems that might be the case, and those who might want to see the process of optimizing a solution for a particular problem. Because of the web presentation aspect of this that allows for comments to be posted to each problem, those that are interested can (and did) contribute to the overall process and engage with the author directly.
Thesis (M.S.)--University of Colorado Denver. Computer science
Includes bibliographic references.
System Details:
System requirements: Adobe Reader.
General Note:
Department of Computer Science and Engineering
Statement of Responsibility:
Andrew Bradford McLauthin.

Record Information

Source Institution:
|University of Colorado Denver
Holding Location:
|Auraria Library
Rights Management:
All applicable rights reserved by the source institution and holding location.
Resource Identifier:
913228161 ( OCLC )


This item is only available as the following downloads:

Full Text