Skip to main content

"atlaslib-ecmwf"

Project description

Atlas

atlas release version build codecov

Project home: https://confluence.ecmwf.int/display/ATLAS
Contact: Willem Deconinck (willem.deconinck@ecmwf.int)
Publication:

Deconinck et al, 2017 --- Atlas: A library for numerical weather prediction and climate modelling

Atlas is a ECMWF library for parallel data-structures supporting unstructured grids and function spaces, with the aim to investigate alternative more scalable dynamical core options for Earth System models, and to support modern interpolation and product generation software

Atlas is predominantly C++ code, with main features available to Fortran codes through a F2003 interface. It requires some flavour of Unix (such as Linux). It is known to run on a number of systems, some of which are directly supported by ECMWF.

Requirements

Tested compilers include:

  • GCC 4.9.1, 5.3.0, 6.3.0, 7.2.0
  • Intel 15.0.2, 16.0.3, 17, 18
  • CCE 8.4.5, 8.5.8, 8.6.2
  • PGI-Fortran 17.7 combined with GNU-C/C++ 6.3
  • PGI 17.7

Known compilers to fail include:

  • PGI-Fortran 17.10, 18.1

Required dependencies:

  • CMake --- For use and installation see http://www.cmake.org/
  • ecbuild --- ECMWF library of CMake macros
  • eckit (with MPI support) --- C++ support library

Recommended dependencies:

  • fckit --- For enabling Fortran interfaces
  • python (only when Fortran bindings are required)

Optional dependencies:

  • gridtools-storage --- For GPU interoperability
  • transi --- For enabling IFS spherical harmonics transforms ( not open-source )
  • CGAL --- For enabling Delaunay triangulation of unstructured grids
  • Eigen3 -- For certain linear algebra operations
  • FFTW -- For enabling inverse spherical harmonics transforms (TransLocal)

Installation

Atlas employs an out-of-source build/install based on CMake.

Make sure ecbuild, eckit and fckit are installed and the ecbuild executable script is found ( which ecbuild ). Following environment variables help the build system to detect the right dependencies:

# For finding eckit
ECKIT_PATH               # Path to eckit prefix

# For finding fckit
FCKIT_PATH               # Path to fckit prefix

Other environment variables that could be required for optional features:

# For finding gridtools-storage
GRIDTOOLS_STORAGE_PATH   # Path to gridtools-storage prefix

# For finding transi
TRANSI_PATH              # Path to transi prefix

# For finding CGAL
BOOST_ROOT               # Path to Boost prefix
CGAL_DIR                 # Path to directory containing CGALConfig.cmake
Eigen3_DIR               # Path to directory containing Eigen3Config.cmake
FFTW_PATH                # Path to FFTW prefix

Now proceed with installation as follows

# Environment --- Edit as needed
ATLAS_SRC=$(pwd)
ATLAS_BUILD=build
ATLAS_INSTALL=$HOME/local

# 1. Create the build directory:
mkdir $ATLAS_BUILD
cd $ATLAS_BUILD

# 2. Run CMake
ecbuild --prefix=$ATLAS_INSTALL -- $ATLAS_SRC

# 3. Compile / Install
make -j10
make install

# 4. Check installation
$ATLAS_INSTALL/bin/atlas --info

Extra flags maybe added to step 2 to fine-tune configuration.

  • --build=DEBUG|RELEASE|BIT --- Optimisation level
    • DEBUG: No optimisation (-O0 -g)
    • BIT: Maximum optimisation while remaning bit-reproducible (-O2 -g)
    • RELEASE: Maximum optimisation (-O3)
  • -DENABLE_OMP=OFF --- Disable OpenMP
  • -DENABLE_FORTRAN=OFF --- Disable Compilation of Fortran bindings

Note: By default compilation is done using shared libraries. Some systems have linking problems with static libraries that have not been compiled with -fPIC. In this case, also compile atlas using static linking, by adding to step 2: --static

Runtime Configuration

Atlas behaviour can be configured through some environment variables with defaults marked in square brackets

  • ATLAS_INFO=<0|[1]> --- Control printing of Atlas standard information
  • ATLAS_DEBUG=<[0]|1> --- Control printing of Atlas debug information
  • ATLAS_TRACE=<[0]|1> --- Control printing of Atlas traces (includes timings)

Contributing

Contributions to Atlas are welcome. In order to do so, please open an issue where a feature request or bug can be discussed. Then issue a pull request with your contribution. Pull requests must be issued against the develop branch.

Citing Atlas

If you publish work which mentions Atlas, or Atlas has been useful in your research, please cite the following paper:

@article{DECONINCK2017188,
title = "Atlas : A library for numerical weather prediction and climate modelling",
journal = "Computer Physics Communications",
volume = "220",
pages = "188 - 204",
year = "2017",
issn = "0010-4655",
doi = "https://doi.org/10.1016/j.cpc.2017.07.006",
url = "http://www.sciencedirect.com/science/article/pii/S0010465517302138",
author = "Willem Deconinck and Peter Bauer and Michail Diamantakis and Mats Hamrud and Christian Kühnlein and Pedro Maciel and Gianmarco Mengaldo and Tiago Quintino and Baudouin Raoult and Piotr K. Smolarkiewicz and Nils P. Wedi",
keywords = "Numerical weather prediction, Climate, Earth system, High performance computing, Meteorology, Flexible mesh data structure"
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

atlaslib_ecmwf-0.44.2.dev9-cp314-cp314-manylinux_2_28_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

atlaslib_ecmwf-0.44.2.dev9-cp314-cp314-manylinux_2_28_aarch64.whl (10.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

atlaslib_ecmwf-0.44.2.dev9-cp313-cp313-manylinux_2_28_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

atlaslib_ecmwf-0.44.2.dev9-cp313-cp313-manylinux_2_28_aarch64.whl (10.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

atlaslib_ecmwf-0.44.2.dev9-cp312-cp312-manylinux_2_28_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

atlaslib_ecmwf-0.44.2.dev9-cp312-cp312-manylinux_2_28_aarch64.whl (10.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

atlaslib_ecmwf-0.44.2.dev9-cp311-cp311-manylinux_2_28_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

atlaslib_ecmwf-0.44.2.dev9-cp311-cp311-manylinux_2_28_aarch64.whl (10.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

atlaslib_ecmwf-0.44.2.dev9-cp310-cp310-manylinux_2_28_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

atlaslib_ecmwf-0.44.2.dev9-cp310-cp310-manylinux_2_28_aarch64.whl (10.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

atlaslib_ecmwf-0.44.2.dev9-1-cp314-cp314-manylinux_2_28_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 43b6aec4adf7ca54e46fe26f37d60cd1f291ef3e3defcf0072de282d3933e73b
MD5 7674318f5fefd34eb03b2e94cc0dc11c
BLAKE2b-256 4f1ca2560080aad9359c45f38d72522925a224caf63733a33058842e33911494

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46fe5225ca46f24d7ccedbe02ea72a31db1087812943d1a401dbcf98dbfb0ea8
MD5 5868ea4c9ee56dcb47b98c79f606a358
BLAKE2b-256 014fdcb0d9248b2810734cd4d154b49777b255fd2ae42c3dbaf03d61e176ddca

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3858c740a1dfc014f778211a59b523e10d5ee4f8987599592c9f592073a6abea
MD5 799e066fb4be70980f24a82a8378b313
BLAKE2b-256 488fce94f8a233d136467b59c1b0b2f30ae16aeac53345cf5e81de8b01dbc9d4

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 38b0143b494b5f8bf6fe1ae3282cd2bf8177fb109ce4aadde729e85f1acc529f
MD5 373ddd6a407fe8fab590151a57ff9cde
BLAKE2b-256 e67b42b61550f494991f399d85020876c42061c394b4c96f64d7dbc93fea0a21

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c95cbb71ed0f895b5cdfae021b6afadec8f22afc9975e37a906115b160e6c3f9
MD5 03cf36748e2a3912dbb726b3829012ff
BLAKE2b-256 3e2c25e4d980c9b23321dfe695e0fdbd62c875f180eab5c6472fed8e241b3c94

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ad3e8fb547211618db1867a47f6ef8b7b5f785dd9748b22429adadc6a68f5be1
MD5 20bcf4133650c496dab50cdfa2981830
BLAKE2b-256 e4bdcceb728eb7de5503ddb73283f1cbbb224fb09fbe69d427143f7f57c52ee4

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2f11b1dae5ebbba390d6c4f2e57699e55796130073eba00ad565aae14b47aedf
MD5 18d74e04897126b7f962732113fc2f87
BLAKE2b-256 715d8ea51f83e0fe86371c80ed1938594e876eeaa97b97695d6ad74d0bda5db6

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4011c5ce5fed20b6092d664b02568095e3514f725e933a0b22944b78bb4b0a04
MD5 5e6adc0ccf069531e10345c128d6d793
BLAKE2b-256 665f0ef1e32886280ac3273c428e9f0bc35e23a228b03dcaf2795247ac26ea5d

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b9a4ad5f760b2c2f088bd939bfe8fead83b6a1eeacb92c09963a83935fff2fb
MD5 bc5a018908daf652c685c87cca010990
BLAKE2b-256 86fce7b17f68d0019aae4215c25c896d1e72e93fc1605d04c67ccdfe11500485

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bc63a2b11cbe9456f15e3458b3554a5a9a5dc6978b476e34b96be1e4c3291b5a
MD5 4a8e44a97a6fc9eb2ddcf7e30a55310a
BLAKE2b-256 bb05e6b3db941320c8da776bca8c6c15a54b45e2117ec0263d5f365325f5993d

See more details on using hashes here.

File details

Details for the file atlaslib_ecmwf-0.44.2.dev9-1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for atlaslib_ecmwf-0.44.2.dev9-1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9cbaae23dfc9b075c112285e5b00c7bb35f9417765a4d27aab24e57ad10f32b5
MD5 b349c3c72787685c21a31217c4d12efd
BLAKE2b-256 f1019ce5dc6468b3791b9da473231b9effc1209e605f9ab056dbedba49206d2f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page