Master-degree projects available with Prof. Xing Cai
1. Multi-spatial-resolution earthquake simulation

Simulation snapshot of earthquake-induced ground motion
- Background: AWP-ODC, developed at SDSC and SDSU,
is a world-leading earthquake simulation code. It currently uses a uniform 3D mesh, that is, same resolution everywhere. One possible improvement is to use finer resolution close to the earth surface, while coarse resolution is used in greater depths.
- Aim of project: To program a two-spatial-resolution version of AWP-ODC, while also studying appropriate interpolation techniques needed for gluing together two regions with different spatial resolutions.
- Approach: Use as starting point a
sequential C code, which is a simplified version of AWP-ODC.
The master student is to program an enhanced version which incorporates
two regions, one with high spatial resolution, the other with coarse resolution. At the same time, three different interpolation techniques (between the
fine and coarse resolutions) will be implemented and tested.
- Learning outcome: The master student will get hands-on experience
with real-world application codes, while learning the basic physical/mathematical principles behind earthquake-induced ground motion. In addition, the student will learn basic numerical methods.
- Extra reward: If the master student achieves excellent results with the simplified version of AWP-ODC, he/she will get the opportunity for a short stay in the sunny San Diego, to work with world-leading experts on world-leading parallel computers!
2. Thread-based parallel programming for earthquake simulation

Simulation snapshots of cumulative peak velocity magnitude
- Background: AWP-ODC, developed at SDSC and SDSU,
is a world-leading earthquake simulation code. The current parallelization of AWP-ODC uses entirely MPI, which also means that the MPI processes within a same multicore compute node also explicitly exchange MPI messages.
- Aim of project: To investigate whether thread-based parallel programming has advantage over pure MPI programming with a single multicore compute node, for AWP-ODC.
- Approach: Use as starting point
a sequential C code, which is a simplified version of AWP-ODC.
The master student is to implement three parallelizations: (1) using MPI (2) using OpenMP (3) using Pthreads.
- Learning outcome: The master student will get hands-on experience
with three different parallel programming paradigms, while working with real-world application codes. The student will also learn basic physical/mathematical principles behind earthquake-induced ground motion, plus basic numerical methods.
- Extra reward: If the master student achieves excellent results with the simplified version of AWP-ODC, he/she will get the opportunity for a short stay in the sunny San Diego, to work with world-leading experts on world-leading parallel computers!
3. Use of GPU for sediment transport simulation
- Background: General-purpose GPUs (such as the latest Fermi architecture from
NVIDIA) offer tremendous computing power. However, code development for
such hardware is challenging. The choice of the underlying numerical strategy
also requires care.
- Aim of project: To implement a fully explicit numerical scheme
for sediment transport simulation
on NVIDIA GPUs in two ways.
- Two programming approaches: (1) Low-level coding using CUDA (2)
High-level programming using Thrust
and make a comparison between these two approaches.
- Learning outcome: The master student will learn
simple numerical strategies for sedimentation simulation,
basic knowledge of parallel computing,
CUDA programming, and use of GPU for scientific computing.
4. Comparison of MPI and OpenMP
- Background: Parallel computers using the multicore technology are becoming widespread. Today, even an ordinary PC has more than one processor core, in principle a mini parallel computer by itself. In order to unleash the computing power on multicore-based architectures, an appropriate programming model is essential. Today's two most widely used programming models are MPI and OpenMP. For a PC having several processor cores, both the programming approaches can be used.
- Aim of project: Study of advantages and disadvantages of MPI vs. OpenMP programming on the multicore architecture.
- Approach: The master student carries out a detailed study by looking closely at issues such as communication overhead, the benefits and also disadvantages of shared memory and cache. A number of standard simulators for numerical computations will be used as the testbed.
- Learning outcome: After finishing the thesis, the master student is expected to get rich knowledge of state-of-the-art computer hardware, and the capability of using the two most widespread parallel programming approaches.