Electronic Structure Based Discovery of Hybrid Photovoltaic Materials on Next-Generation HPC Platforms

PI Name: 
Volker Blum
PI Email: 
volker.blum@duke.edu
Institution: 
Duke University
Allocation Program: 
Theta ESP
Year: 
2015
Research Domain: 
Materials Science

Tier 2 Code Development Project

Numerical Methods/Algorithms

The FHI-aims all-electron electronic structure code is a well-established, accurate framework for large-scale density-functional theory (DFT) and many-body perturbation theory (MBPT) based simulations of the structure and properties of molecules, crystals, interfaces, and functional nanostructures.

The GAtor genetic algorithm (GA) package for crystal structure prediction and materials design interfaces with FHI-aims and with the TINKER force field package. It may be easily adapted to interface with any other electronic structure and/or force field code.

Parallelization

FHI-aims is already efficiently MPI-parallelized for the primary applications envisioned in this project, including semilocal and hybrid density-functional theory, and non-periodic GW. An effective MPI based parallelization exists for the early-stage version of periodic GW.

The Swift scripting language is used to execute multiple instances of GAtor, such that many replicas may run concurrently in an embarrassingly parallel fashion on any HPC architecture.

Application Development

  • Many-core optimize bottlenecks in DFT by introducing OpenMP (with MPI)
  • Many-core optimization of methods beyond semilocal DFT (hybrid functionals and many-body perturbation theory) with MPI+OpenMP
  • Evaluate the “extended OpenACC” model for FHI-aims (see Portability section)

Portability

Researchers will evaluate the “extended OpenACC” programming model (OpenACC-e) developed at Oak Ridge National Laboratory. OpenACC-e is based on a research compiler called OpenARC that is under active development and has already been demonstrated to produce platform-optimized code for reference applications. OpenARC performs source-to-source translation from OpenACC C to target accelerator models (CUDA or OpenCL), enabling more fine-grained, device-aware features than OpenACC.