Interests

I'm mainly interested in numerical approaches to condensed matter theory, especially problems in spin systems and quantum phase transitions. I am also interested in trying to apply parallel computing techniques to problems in this field. Many are limited by speed more than memory, and advances can be made with systems that cost far less than traditional CPU-based systems. Progress using such methods has already been made in some areas, e.g. Monte Carlo simulations and Potts model metastability.

Projects

I've completed two terms of research, and halfway through my 437 senior research project, which I intend to pursue for two terms. I'm being supervised by Roger Melko.

Winter 2012 - Numerical Linked Cluster Expansions on GPU

This is a continuation of the project from Fall 2011. Since creating Hamiltonians concurrently is working well, I'm now focusing on getting the Lanzcos diagonalization working for many Hamiltonians as well. We're also looking at experimenting with more models on the GPU, like the 1D Transverse Field Ising Model.

Fall 2011 - Simpulating Quantum Spin Systems on GPU

The aim of this project is to apply GPGPU programming techniques to the method outlined here. Since each cluster's Hamiltonian is independent of all the others, they can all be generated and processed (to find the value of the extensive quantity) in parallel on the GPU. This may allow for more precise results, since on CPU systems this problem has been highly speed limited.

At the end of the fall term, my code could make many Hamiltonians concurrently on the GPU (30 at a time), up to a total of about 1500. My code was significantly faster than a CPU translation, up to 12x for 130 full spin 1/2 Heisenberg Hamiltonians on a 16 site cluster.

Summer 2011 - 2D Heisenberg and Lanczos

The goal was to convert CPU code, which constructs a 2D Heisenberg model Hamiltonian on a 4-by-4 lattice and then applies the Lanczos algorithm to it, to CUDA C. This was done by constructing the elements of the Hamiltonian in parallel, sorting them, and then using built-in BLAS and sparse matrix libraries to perform the Lanczos. The GPU code generated the correct Hamiltonian and eigenvalues, and continues to be improved. The code is available at github.