Skip to content

Commit

Permalink
Merge branch 'develop' into feature/interpolation_comparisons
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrdar committed Aug 2, 2023
2 parents 8af09d5 + f2c3b57 commit ec5dec2
Show file tree
Hide file tree
Showing 151 changed files with 8,974 additions and 1,212 deletions.
33 changes: 19 additions & 14 deletions .github/ci-hpc-config.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
build:
modules:
- ecbuild
- ninja
modules_package:
- atlas:fftw,eigen
dependencies:
- ecmwf/eckit@develop
parallel: 64
matrix:
- mpi_on
- mpi_off

nvidia-22.11:
mpi_on:
build:
modules:
- ecbuild
- ninja
modules_package:
- atlas:fftw,eigen/3.4.0
- atlas:fftw,eigen,openmpi
- eckit:openmpi
dependencies:
- ecmwf/ecbuild@develop
- ecmwf/eckit@develop
parallel: 64
ntasks: 16

mpi_off:
build:
modules:
- ninja
modules_package:
- atlas:fftw,eigen
dependencies:
- ecmwf/ecbuild@develop
- ecmwf/eckit@develop
parallel: 64
env:
- ATLAS_FPE=0
24 changes: 12 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- linux gnu-12
- linux gnu-7
- linux clang-12
- linux nvhpc-21.9
# - linux nvhpc-22.11
- linux intel
- macos

Expand Down Expand Up @@ -89,16 +89,16 @@ jobs:
caching: true
coverage: false

- name: linux nvhpc-21.9
os: ubuntu-20.04
compiler: nvhpc-21.9
compiler_cc: nvc
compiler_cxx: nvc++
compiler_fc: nvfortran
cmake_options: -DCMAKE_CXX_FLAGS=--diag_suppress177
ctest_options: "-LE mpi" # For now until Checkerboard fixed
caching: false
coverage: false
# - name: linux nvhpc-22.11
# os: ubuntu-20.04
# compiler: nvhpc-22.11
# compiler_cc: nvc
# compiler_cxx: nvc++
# compiler_fc: nvfortran
# cmake_options: -DCMAKE_CXX_FLAGS=--diag_suppress177
# ctest_options: "-LE mpi" # For now until Checkerboard fixed
# caching: false
# coverage: false

- name : linux intel
os: ubuntu-20.04
Expand Down Expand Up @@ -168,7 +168,7 @@ jobs:
if: contains( matrix.compiler, 'nvhpc' )
shell: bash -eux {0}
run: |
${ATLAS_TOOLS}/install-nvhpc.sh --prefix ${DEPS_DIR}/nvhpc
${ATLAS_TOOLS}/install-nvhpc.sh --prefix ${DEPS_DIR}/nvhpc --version 22.11
source ${DEPS_DIR}/nvhpc/env.sh
echo "${NVHPC_DIR}/compilers/bin" >> $GITHUB_PATH
[ -z ${MPI_HOME+x} ] || echo "MPI_HOME=${MPI_HOME}" >> $GITHUB_ENV
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: cd

on:
push:
tags:
- '**'

jobs:
deploy:
uses: ecmwf-actions/reusable-workflows/.github/workflows/create-package.yml@v2
secrets: inherit
28 changes: 0 additions & 28 deletions .github/workflows/reusable-ci-hpc.yml

This file was deleted.

28 changes: 0 additions & 28 deletions .github/workflows/reusable-ci.yml

This file was deleted.

20 changes: 14 additions & 6 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,31 @@ Thanks for contributions from
- Andreas Mueller
- Baudouin Raoult
- Florian Rathgeber
- Marek Wlasak
- Oliver Lomax
- Marek Wlasak
- Daniel Holdaway
- Daan Degrauwe
- Philippe Marguinaud
- Slavko Brdar
- Gianmarco Mengaldo
- Dušan Figala
- Benjamin Menetrier
- James Hawkes
- Mats Hamrud
- Benjamin Menetrier
- Rahul Mahajan
- Toby Searle
- Olivier Iffrig
- Christian Kuehnlein
- Iain Russell
- Marco Milan
- Daniel Tipping
- Domokos Sármány
- Steven Vahl
- Lorenzo Milazzo
- Francois Hebert
- Yannick Trémolet
- Mark J. Olah
- Michael Lange
- Sam Hatfield
- Peter Bispham
- Slavko Brdar
- Yannick Trémolet
- Paul Cresswell
- Steven Vahl
- Michael Lange
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,27 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html

## [Unreleased]

## [0.34.0] - 2023-07-10
### Added
- Fieldset::metadata (#126)
- Fieldset::adjointHaloExchange
- Field/Fieldset::clone method
- Functions to enable/disable FPE
- Add function to build mesh from imported connectivity data (#135)
- Implement field::for_each capabilities (#139)
- Introduce colon-separated environment variable ATLAS_PLUGIN_PATH to simplify plugin detection
- Introduce atlas::mdspan, contributed from github.com/kokkos/mdspan
- Add function Field::horizontal_dimension() -> std::vector<idx_t>
- Setup horizontal_dimensions() for BlockStructuredColumns fields
- Upgrade the halo exchange procedure for the function space 'PointCloud' (#120)

### Fixed
- Enable latitude normalisation in KDTree coordinate transform (#140)
- Fix LocalView indexing bug for non-contiguous slices
- C++17 flag public propagation to downstream C++ CMake packages
- Fix cells().global_index() metadata for RegularLonLat grids in StructuredMeshGenerator
- BuildHalo: mark interior added cells as ghost

## [0.33.0] - 2023-04-03
### Added
- Add support for StructuredPartitionPolygon with halo > 0
Expand Down Expand Up @@ -443,6 +464,7 @@ Fix StructuredInterpolation2D with retry for failed stencils
## 0.13.0 - 2018-02-16

[Unreleased]: https://github.com/ecmwf/atlas/compare/master...develop
[0.33.0]: https://github.com/ecmwf/atlas/compare/0.33.0...0.34.0
[0.33.0]: https://github.com/ecmwf/atlas/compare/0.32.1...0.33.0
[0.32.1]: https://github.com/ecmwf/atlas/compare/0.32.0...0.32.1
[0.32.0]: https://github.com/ecmwf/atlas/compare/0.31.1...0.32.0
Expand Down
29 changes: 28 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,39 @@ find_package(atlas_io)
################################################################################
# Features that can be enabled / disabled with -DENABLE_<FEATURE>

ecbuild_add_option( FEATURE ATLAS_GRID
DESCRIPTION "Build grid related features" )

ecbuild_add_option( FEATURE ATLAS_FIELD
DESCRIPTION "Build field and memory management related features" )

ecbuild_add_option( FEATURE ATLAS_FUNCTIONSPACE
DESCRIPTION "Build functionspace related features (mesh, functionspace, parallel)"
CONDITION atlas_HAVE_ATLAS_GRID AND atlas_HAVE_ATLAS_FIELD )

ecbuild_add_option( FEATURE ATLAS_INTERPOLATION
DESCRIPTION "Build interpolation related features"
CONDITION atlas_HAVE_ATLAS_FUNCTIONSPACE )

ecbuild_add_option( FEATURE ATLAS_TRANS
DESCRIPTION "Build transform related features"
CONDITION atlas_HAVE_ATLAS_FUNCTIONSPACE )

ecbuild_add_option( FEATURE ATLAS_NUMERICS
DESCRIPTION "Build numerics related features"
CONDITION atlas_HAVE_ATLAS_FUNCTIONSPACE )

ecbuild_add_option( FEATURE ECKIT_DEVELOP
DESCRIPTION "Used to enable new features or API depending on eckit develop branch, not yet in a tagged release"
DEFAULT OFF )


include( features/BOUNDSCHECKING )
include( features/FORTRAN )
include( features/MPI )
include( features/OMP )
include( features/FFTW )
include( features/TRANS )
include( features/ECTRANS )
include( features/TESSELATION )
include( features/GRIDTOOLS_STORAGE )
include( features/ACC )
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.33.0
0.34.0
2 changes: 2 additions & 0 deletions atlas_io/src/atlas_io/Trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <memory>
#include <string>
#include <vector>
#include <limits>

namespace eckit {
class CodeLocation;
Expand Down Expand Up @@ -51,6 +52,7 @@ struct TraceHookRegistry {
static bool enabled(size_t id) { return instance().enabled_[id]; }
static size_t size() { return instance().hooks.size(); }
static TraceHookBuilder& hook(size_t id) { return instance().hooks[id]; }
static size_t invalidId() { return std::numeric_limits<size_t>::max(); }

private:
TraceHookRegistry() = default;
Expand Down
2 changes: 1 addition & 1 deletion atlas_io/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ foreach( algorithm none bzip2 aec lz4 snappy )
string( TOUPPER ${algorithm} feature )
if( eckit_HAVE_${feature} OR algorithm MATCHES "none" )
ecbuild_add_test( TARGET atlas_io_test_record_COMPRESSION_${algorithm}
COMMAND atlas_test_io_record
COMMAND atlas_io_test_record
ARGS --suffix ".${algorithm}"
ENVIRONMENT ${ATLAS_TEST_ENVIRONMENT} ATLAS_IO_COMPRESSION=${algorithm}
)
Expand Down
4 changes: 2 additions & 2 deletions cmake/atlas-import.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ set( atlas_HAVE_MPI @atlas_HAVE_MPI@ )
set( atlas_HAVE_OMP @atlas_HAVE_OMP@ )
set( atlas_HAVE_OMP_CXX @atlas_HAVE_OMP_CXX@ )
set( atlas_HAVE_OMP_Fortran @atlas_HAVE_OMP_Fortran@ )
set( atlas_HAVE_TRANS @atlas_HAVE_TRANS@ )
set( atlas_HAVE_ECTRANS @atlas_HAVE_ECTRANS@ )
set( atlas_HAVE_FORTRAN @atlas_HAVE_FORTRAN@ )
set( atlas_HAVE_EIGEN @atlas_HAVE_EIGEN@ )
set( atlas_HAVE_GRIDTOOLS_STORAGE @atlas_HAVE_GRIDTOOLS_STORAGE@ )
Expand Down Expand Up @@ -65,7 +65,7 @@ if( atlas_OMP_COMPONENTS )
endif()

## transi
if( atlas_HAVE_TRANS AND atlas_REQUIRES_PRIVATE_DEPENDENCIES )
if( atlas_HAVE_ECTRANS AND atlas_REQUIRES_PRIVATE_DEPENDENCIES )
set( transi_DIR @transi_DIR@ )
if( transi_DIR )
find_dependency( transi HINTS ${CMAKE_CURRENT_LIST_DIR}/../transi @transi_DIR@ )
Expand Down
5 changes: 5 additions & 0 deletions cmake/atlas_compile_flags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,8 @@ if( CMAKE_CXX_COMPILER_ID MATCHES Cray )
# directives, ACC directives, or ASM intrinsics.

endif()

if( CMAKE_CXX_COMPILER_ID MATCHES NVHPC )
ecbuild_add_cxx_flags("--diag_suppress declared_but_not_referenced --display_error_number" NAME atlas_cxx_disable_warnings )
# For all the variables with side effects (constructor/dectructor functionality)
endif()
7 changes: 7 additions & 0 deletions cmake/features/ACC.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
### OpenACC

if( atlas_HAVE_ATLAS_FIELD )

set( ATLAS_ACC_CAPABLE FALSE )
if( HAVE_CUDA )
if( CMAKE_Fortran_COMPILER_ID MATCHES "PGI|NVHPC" )
Expand All @@ -21,3 +23,8 @@ if( atlas_HAVE_ACC )
endif()
endif()
endif()

else()
set( HAVE_ACC 0 )
set( atlas_HAVE_ACC 0 )
endif()
35 changes: 35 additions & 0 deletions cmake/features/ECTRANS.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
if( atlas_HAVE_ATLAS_TRANS )

### trans ...

if( NOT DEFINED ENABLE_ECTRANS AND DEFINED ENABLE_TRANS )
ecbuild_warn("Atlas option ENABLE_TRANS is deprecated in favour of ENABLE_ECTRANS")
set( ENABLE_ECTRANS ${ENABLE_TRANS} )
endif()
if( NOT DEFINED ATLAS_ENABLE_ECTRANS AND DEFINED ATLAS_ENABLE_TRANS )
ecbuild_warn("Atlas option ATLAS_ENABLE_TRANS is deprecated in favour of ATLAS_ENABLE_ECTRANS")
set( ATLAS_ENABLE_TRANS ${ENABLE_TRANS} )
endif()

set( atlas_HAVE_PACKAGE_ECTRANS 0 )
if( atlas_HAVE_ATLAS_FUNCTIONSPACE AND (ENABLE_ECTRANS OR NOT DEFINED ENABLE_ECTRANS) )
find_package( ectrans 1.1 COMPONENTS transi double QUIET )
if( TARGET transi_dp )
set( transi_FOUND TRUE )
if( NOT TARGET transi )
get_target_property( transi_dp_IMPORTED transi_dp IMPORTED )
if( transi_dp_IMPORTED )
set_target_properties( transi_dp PROPERTIES IMPORTED_GLOBAL TRUE) # required for aliasing imports
endif()
add_library( transi ALIAS transi_dp )
endif()
set( atlas_HAVE_PACKAGE_ECTRANS 1 )
else()
find_package( transi 0.8 QUIET )
endif()
endif()
ecbuild_add_option( FEATURE ECTRANS
DESCRIPTION "Support for IFS spectral transforms"
CONDITION atlas_HAVE_ATLAS_FUNCTIONSPACE AND transi_FOUND )

endif()
Loading

0 comments on commit ec5dec2

Please sign in to comment.