Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: sergipalomas
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Size: 237 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Prediction Script to find the best resource configuration for coupled Earth system models (ESMs)

Description

This project contains a script designed to predict the optimal resource configuration for coupled Earth System Models (ESMs) by considering the scalability properties of each individual component. The script balances Time-to-Solution (TTS) and Energy-to-Solution (ETS) criteria based on the available parallel resources.

Requirements

To run this script, you need the following Python packages, as listed in requirements.txt:

  • cycler==0.10.0
  • kiwisolver==1.3.1
  • matplotlib==3.0.3
  • numpy==1.18.3
  • pandas==1.0.3
  • pyparsing==2.4.7
  • python-dateutil==2.8.2
  • pytz==2021.3
  • PyYAML==5.4
  • scipy==1.5.2
  • six==1.16.0

You can install the required packages using the following command: bash pip install -r requirements.txt

Usage

To run the script, use the following command:

bash python main.py config.yaml

Configuration file

The config.yaml file is used to set up the component-specific and general configurations. Below is an example configuration:

```yaml

Components: - name: comp1 file: data/comp1.csv nprocrestriction: # e.g. [ 48, 96, 144, 192, 240 ] timestepinfo: # e.g. data/comp1ts240.csv timestep_nproc: # e.g. 240

  • name: comp2 file: data/comp2.csv nprocrestriction: timestepinfo: timestep_nproc:

General: maxnproc: 2000 TTSratio: .5 interpomethod: quadratic showplots: False nproc_step: 24 ```

Components: List of components with their corresponding configurations - file: Path to the CSV file containing the scalability curve. - nproc_restriction: (optional) Array specifying the allowed number of processes for the component. Example: [48, 96, 144, 192, 240]. - timestep_info: (Optional) Path to the CSV file that contains timestep-specific information. Example: ts_data/comp1_ts.csv. This can help the script to get more reliable results. - timestep_nproc: (Mandatory if timestepinfo is used)_ Integer indicating the number of processors used in the CSV provided in timestep_info. Example: 240.

General settings including maximum processors, TTS ratio, interpolation method, and other configurations. All arguments are mandatory:

  • max_nproc: Maximum number of processors available for the simulation.
  • TTS_ratio: A ratio between 0 and 1 that determines the weight given to Time-to-Solution (TTS). A value of 1 prioritizes speed, minimizing TTS regardless of the execution cost. The recommended value is 0.5. Note that ETS_ratio = 1 - TTS_ratio represents the weight for Energy-to-Solution (ETS).
  • interpo_method: Method for interpolating scalability data. Options include linear, slinear, and quadratic. The recommended method is quadratic, but it can be adjusted if the default interpolation does not accurately reflect the component's scalability.
  • show_plots: Boolean flag that, when set to True, enables the generation of debug plots. Set to False to disable additional plots.
  • nproc_step: Step size for evaluating different processor configurations. A smaller step size (e.g., 1) results in a more granular search for solutions. The step size should be chosen based on the variability and performance characteristics of the model and machine. Here, for instance, I used half of the node size of the machine (24).

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.

Owner

  • Login: sergipalomas
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.1.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Palomas
  given-names: Sergi
orcid: https://orcid.org/10.5281/zenodo.14163512
title: auto-lb_prediction-scirpt
version: v1.0
date-released: 2024-11-14

GitHub Events

Total
  • Release event: 1
  • Watch event: 1
  • Push event: 2
  • Create event: 3
Last Year
  • Release event: 1
  • Watch event: 1
  • Push event: 2
  • Create event: 3

Dependencies

requirements.txt pypi
  • PyYAML ==5.4
  • cycler ==0.10.0
  • kiwisolver ==1.3.1
  • matplotlib ==3.0.3
  • numpy ==1.18.3
  • pandas ==1.0.3
  • pyparsing ==2.4.7
  • python-dateutil ==2.8.2
  • pytz ==2021.3
  • scipy ==1.5.2
  • six ==1.16.0