Metadata-Version: 2.1
Name: AutoRPE
Version: 1.0.0
Summary: AutoRPE is a tool designed to help with the optimization of numerical precision of Computational Science models writen in FORTRAN.
Author-email: Oriol Tintó Prims <oriol.tinto@bsc.es>
License:    Copyright 2024 Barcelona Supercomputing Center
        
           Oriol Tintó Prims, Stella V. Paronuzzi Ticco, Maitane Fariñas, Miguel Castrillo, Mario C. Acosta Cobos
        
           Licensed under the Apache License, Version 2.0 (the "License");
           you may not use this file except in compliance with the License.
           You may obtain a copy of the License at
        
               http://www.apache.org/licenses/LICENSE-2.0
        
           Unless required by applicable law or agreed to in writing, software
           distributed under the License is distributed on an "AS IS" BASIS,
           WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
           See the License for the specific language governing permissions and
           limitations under the License.
        
Project-URL: homepage, https://earth.bsc.es/gitlab/ces/hpc-for-es-team/AutoRPE
Project-URL: repository, https://earth.bsc.es/gitlab/ces/hpc-for-es-team/AutoRPE
Project-URL: documentation, https://earth.bsc.es/gitlab/ces/hpc-for-es-team/AutoRPE
Keywords: mixed precision,HPC
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: networkx
Requires-Dist: tqdm
Requires-Dist: fprettify

# AutoRPE

![AutoRPE Logo](docs/source/images/logo.png)
*(Automatic Reduced Precision Emulator)*

AutoRPE is a tool designed to optimize the numerical precision of computational science models written in Fortran. Originally developed to enable the use of a [Reduced Precision Emulator](https://rpe.readthedocs.io/en/stable/) (RPE) ( [Dawson, A. and Düben, P. D.: 2017](https://gmd.copernicus.org/articles/10/2221/2017/)) in large-scale codes such as NEMO, AutoRPE has since evolved into a framework for streamlining code modifications, managing precision experiments, and facilitating precision sensitivity analysis.

## Features

- **Automatic Code Manipulation:**

Modifies Fortran source code to implement reduced precision emulation, reducing manual effort.

- **Precision Sensitivity Analysis:**

Identifies sensitive variables requiring higher precision using algorithms like binary search.

- **Workflow Management:**

Automates precision testing workflows to minimize manual intervention and ensure reproducibility.

- **Code Coherency Assurance:**

Detects and resolves inconsistencies in variable types to ensure code correctness.

## Background

Global warming and climate change pose significant challenges to humanity due to their social, economic, and environmental impacts. Better understanding and improved capacity to forecast climate evolution can support the development of ambitious adaptation policies. Earth system models (ESMs) are crucial for simulating and predicting climate behavior, but their computational demands continue to grow with advancements such as higher resolution and ensemble forecasting. Efficient use of computational resources has become essential, and mixed-precision approaches are emerging as a way to enhance performance by reducing memory and computational costs. However, identifying variables that can safely operate at reduced precision without compromising model accuracy is complex. AutoRPE was developed to automate this process, enabling the exploration of mixed-precision configurations in full-scale models and facilitating performance improvements in computationally intensive simulations.

## Documentation

For detailed documentation on installation, usage, and workflows, visit the [AutoRPE Documentation](https://autorpe.readthedocs.io).
