Toward an Integrated Development Environment for Atmospheric Sciences Codes
For software engineers, integrated development environments (IDEs) have proved to be an essential productivity aid for working on large codebases. IDEs attempt to provide all (or most) of the functionality needed from software development tooling – syntax-aware source code editing and navigation, compilation, debugging, version control, and so forth – and they provide it all within a single, streamlined user interface. Within the past 20 years, IDEs have become increasingly sophisticated, adding language-aware search and navigation, code completion, and automated refactoring.
The IDE best poised to benefit geoscientists is Eclipse. Eclipse is an IDE framework; plug-ins are installed to make it support various programming languages, or to add additional features. C and C++ support are provided through the C/C++ Development Tools (CDT). Other Eclipse plug-ins provide integration with version control systems including Subversion and Git, as well as integration with bug tracking systems like Bugzilla and Jira.
The Parallel Tools Platform, or PTP, is a set of Eclipse plug-ins that provides the capabilities necessary to use Eclipse for HPC software development. It provides facilities to copy source code to a remote HPC resource and compile it on that resource. It also provides a graphical interface for job submission and monitoring, as well as a graphical debugger. When PTP is installed together with the C/C++ Development Tools (CDT), Eclipse becomes a complete development environment for supercomputer application development in C/C++.
Photran is the set of plug-ins that turn Eclipse into a Fortran IDE; it can be installed alongside PTP to provide a complete development environment for supercomputer application development in Fortran. Photran provides a syntax-highlighting editor for Fortran code, integration with Make for compilation, recognition of compiler error messages and hyperlinking errors to source code, and a graphical debugger.
Finally, Eclipse for Parallel Application Developers is a single, easy to download and deploy package which integrates language support for C, C++, Fortran, as well as the capabilities of the Parallel Tools Platform, all described above, to provide a Workbench for High Performance Computing, that is both powerful and accessible for application developers across many disciplines.
In this talk, we will demonstrate the current capabilities of Eclipse for Parallel Application Developers as an environment for developing atmospheric science codes such as WRF, and HPC codes more generally. We will also discuss limitations of the environment and directions for future collaboration, including OpenACC support and parallel debugger integration. Finally, we will describe how Eclipse for Parallel Application Developers can be used to improve one's software engineering practices for developing science and engineering codes.