Skip to main content
Login | Suomeksi | På svenska | In English

Browsing by Subject "banded solver"

Sort by: Order: Results:

  • Lipsunen, Werner (2023)
    This thesis examines the implementation of general purpose graphics processing unit (GPGPU) acceleration to a non-equilibrium Green’s function (NEGF) equation solver in the context of a computational photoelectrochemical (PEC) cell model. The goal is to find out whether GPGPU acceleration of the NEGF equation solver is a viable option. The current model does not yet have electron-photon scattering, but from the results it is possible to assess the viability of GPGPU acceleration in the case of a complete PEC cell model. The viability of GPGPU acceleration was studied by comparing the performance difference of two graphics processing unit (GPU) solutions against a multi core central processing unit (CPU) solution. The difference between the two GPU solutions was in the used floating-point precision. The GPU solutions would use LU factorization to solve the NEGF equations, and the CPU solution a banded solver (Gauss tridiagonal) provided by Scipy Python package. The performance comparison was done on multiple different GPU and CPU hardware. The electrical transport properties of the PEC cell were modeled by a self-consistent process in which the NEGF and Poisson equations were solved iteratively. The PEC cell was described as a semiconductor device connected with a metal and electrolyte contacts. The device was assumed to be a simple one dimensional tight-binding atom chain made of GaAs, where the transverse modes in the y–z plane are treated with a logarithmic function. The computational model did lack electron-photon scattering, which would be implemented in the future. From the benchmark results, it can be concluded that the GPGPU acceleration via LU factorization is not a viable option in the current code or in the complete model with electron-photon scattering and the assumed approximations. The parallel multi-core CPU code generally outperformed the GPU codes. The key weakness of the GPU code was the usage of LU factorization. Despite of this, there could be an opportunity for GPGPU acceleration if a more complex lattice structure and more exact scattering terms would be used. Also, a GPU accelerated tridiagonal solver could be a possible solution.