Faculty Mentor(s)

Dr. Charles Cusack, Computer Science

Document Type


Event Date



Computers almost always contain one or more central processing units (CPU), each of which processes information sequentially. While having multiple CPUs allow a computer to run several tasks in parallel, many computers also have a graphics processing unit (GPU) which contains hundreds to thousands of cores that allow it to execute many computations in parallel. In order to complete a larger task, GPUs run many subtasks concurrently. Each core performs the same instruction on different sets of data, making it useful for performing tasks such as calculating what each individual pixel displays on a screen. The purpose of this research was to learn how GPUs work, how to write CUDA programs to utilize GPUs, and to determine if GPUs could be used to increase the speed of algorithms used to determine the pebbling properties of graphs. In addition, we developed a class module on GPU computing with CUDA for the Advanced Algorithms class in Hope College’s Computer Science department.