My undergraduate research project has two goals. The first goal is to translate the current ESEL software database so that it runs off the CUDA programming language instead of the C++ programming language. Having ESEL written in CUDA instead of C++ will allow for the software to be run on a parallel programming framework. This will allow us as a research group to dramatically speed up the computing applications of ESEL by employing graphical processing units (GPUs) manufactured by NVIDIA.
After we have accomplished converting ESEL into CUDA from C++ our next goal is to use the more efficient ESEL software system to expand our molecular reaction modeling to more than one molecule at a time. For example, with the ESEL software system based off the CUDA programming language we will be able to write new algorithms that allow us to geometrically model reactions of two, three, four, five, or more molecules. Each molecule in the software is a collection of solid spheres that are rigid within themselves. If we have two molecules, then each molecule is stored as a list of atoms without regard to the chemical reactions within each molecule. ESEL works at a super molecular level, concerning more of how the molecules affect each other via weak forces such as Vander waals and hydrogen bonds. We are not concerned with anything that will affect the molecules themselves.
This is used to predict and model protein folding by looking at how the angles, Vander wall forces, and hydrogen bonds between the atoms are changing. If we have two molecules, each molecule is given as a set of atoms where each atom has an internal coordinate, and you are given a set of transformations in the form of a matrix. If you build a relative coordinate system with the first molecule, we then calculate where all the atoms of the second molecule fall after the same given transformation. For the second molecule we need to calculate the coordinate of the atoms one at a time, modeled as solid spheres, after the transformation.
After we covert the current ESEL software system from C++ to CUDA we will be able to more quickly process simple tasks using the GPU to boost the performance of the ESEL software system. This will aid us in being able to process the algorithms that we write to model a set of transformations applied to more than one molecule at a time. The applications of my research will be important to medical research that could aid in saving the lives of others through the creation of new medicines or by developing a deeper understanding of diseases.