Multi-Platform Parallel Code Coverage

Multi-platform parallel code coverage and regression testing with CP2K 

Location: Edinburgh Parallel Computing Centre (EPCC)Edinburgh, Scotland, UK

Project Abstract: 

CP2K ( is a widely-used program for atomistic simulation using a wide range of methods including Forcefields, Density Functional Theory, Hybrid DFT-Hartree-Fock, and post-HF.  It is a large code base, extending to over 800,000 lines of Fortran 95, is open-source (GPL) and has an active community of around 15 developers spread across Europe.  The code can be compiled for a range of architectures including GNU/Linux, IBM BlueGene, Intel, can be built either as a serial executable, or use MPI and/or OpenMP for parallelisation and key computational kernels have CUDA implementations for use on GPGPU systems.  Currently the code is supplied with a suite of 2,000 example input files, which can be run as a regression test of the code’s functionality, both for the benefit of developers and for users compiling the code for the first time on a new system.  However, the only regular, automated testing is carried out using two MPI process jobs on a Linux x86_64 system using the G95 compiler, and therefore must only test a certain subset of the code’s functionality.

This project involves investigating and improving our test coverage of CP2K.  We will use existing code coverage analysis tools (e.g. gcov, LCOV, FCAT) to measure the existing code coverage of the current test suite, and identify parts of the code which are poorly tested.  We will explore ways of presenting test coverage information such that it could be included in the regression test reports published on the CP2K website.  Secondly, we will extend the current automatic regression tests to include multiple platforms, compilers and parallel builds and develop a method of aggregating and displaying the test results via the CP2K website.

UK - Multi-Platform Code Coverage - Iain1

The current visual (chart) display from the CP2K regression tester (

UK - Multi-Platform Code Coverage - Iain3

Example of a molecular system which can be studied with CP2K: (F. Schiffmann and J. VandeVondele). A snapshot from an ab-initio molecular dynamics simulation of an accurate model of the functionalized solid/liquid interface in dye sensitized solar cells. For this system (1300 atoms)

Project Mentor:Iain Bethune
Site Co-ordinator:Irina Nazarova

Learning Outcomes:

The student will learn how to:

  • Run automated regression tests in parallel (MPI/OpenMP)
  • Measure code coverage of complex Fortran applications
  • Auto-generate webpages to visually represent test results
  • Modify and extend a moderate (~600 line) perl scripted test environment

Student Prerequisites (Compulsory):

  • UNIX/Linux skills (shell scripting, file management, SSH…)
  • Web development experience
  • Programming in (at least) C

Student Prerequisites (Desirable):

  • Programming in Perl
  • Atomistic Simulation experience (e.g. Molecular Dynamics)
  • Fortran experience
  • Code Coverage & testing tools

Training Materials:

General background on CP2K: (Video)
CP2K Project Website:

Project Application Reference: UK- EPCC – Multi-Platform Parallel Code Coverage

Applications are now closed

Please follow and like us:
Tagged with: , , ,
Follow by Email27