Skip to content

Commit

Permalink
Record global dimensions in metadata file
Browse files Browse the repository at this point in the history
  • Loading branch information
draenog committed Nov 6, 2023
1 parent d2dd202 commit 29e9c15
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 7 deletions.
19 changes: 15 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

Expand Down Expand Up @@ -36,8 +36,19 @@ set(CMAKE_INSTALL_RPATH $ORIGIN/${relDir1}:$ORIGIN/${relDir2})
# Dependencies
find_package(Catch2 REQUIRED)
find_package(MPI REQUIRED COMPONENTS CXX)
find_package(netCDF REQUIRED)
find_package(Zoltan REQUIRED)
find_package(PkgConfig)
pkg_search_module(NETCDF_CXX4 netcdf-cxx4)
if (NOT NETCDF_CXX4_FOUND)
find_package(netCDF REQUIRED)
endif()

find_package(Zoltan QUIET)
if (NOT Zoltan_CONFIG_INCLUDED)
message("Lokking in paths: ${INCLUDE}")
find_path(ZOLTAN_INCLUDE_DIR zoltan.h HINTS ENV CPATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH REQUIRED)
find_library(Zoltan_LIBRARIES zoltan HINTS ENV LIBRARY_PATH REQUIRED)
endif()

find_package(Boost COMPONENTS program_options REQUIRED)

# Generic options for compilation
Expand Down Expand Up @@ -104,7 +115,7 @@ target_include_directories(${EXEC_NAME}
)
target_link_libraries(${EXEC_NAME}
PUBLIC MPI::MPI_CXX
PRIVATE netcdf ${Zoltan_LIBRARIES} Boost::program_options
PRIVATE netcdf ${Zoltan_LIBRARIES} "gfortran" Boost::program_options
)
target_link_directories(${EXEC_NAME}
PRIVATE ${netCDF_LIB_DIR}
Expand Down
10 changes: 10 additions & 0 deletions Partitioner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,16 @@ void Partitioner::save_metadata(const std::string& filename) const
CHECK_MPI(MPI_Exscan(&right_num_neighbors, &right_offset, 1, MPI_INT, MPI_SUM,
_comm));

// Create 2 dimensions
// The values to be written are associated with the netCDF variable by
// assuming that the last dimension of the netCDF variable varies fastest in
// the C interface
const int NDIMS = 2;
int dimid_global[NDIMS];
NC_CHECK(nc_def_dim(nc_id, "globalX", _global_ext_0, &dimid_global[0]));
NC_CHECK(nc_def_dim(nc_id, "globalY", _global_ext_1, &dimid_global[1]));


// Define dimensions in netCDF file
int dimid, top_dimid, bottom_dimid, left_dimid, right_dimid;
NC_CHECK(nc_def_dim(nc_id, "P", _num_procs, &dimid));
Expand Down
2 changes: 1 addition & 1 deletion examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ function(create_example)
${ARG_SOURCES}
)
target_link_libraries(${ARG_TARGET}
PRIVATE Boost::program_options ${PROJECT_NAME}::${LIB_NAME}
PRIVATE Boost::program_options ${PROJECT_NAME}::${LIB_NAME} "gfortran"
)
target_include_directories(${ARG_TARGET}
PRIVATE ${CMAKE_SOURCE_DIR}
Expand Down
4 changes: 2 additions & 2 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ function(create_test)
main.cpp
)
target_link_libraries(${ARG_TARGET}
PRIVATE Catch2::Catch2 ${PROJECT_NAME}::${LIB_NAME}
PRIVATE Catch2::Catch2 ${PROJECT_NAME}::${LIB_NAME} "gfortran"
)
target_include_directories(${ARG_TARGET}
PRIVATE ${CMAKE_SOURCE_DIR}
)
foreach(numProcs RANGE 1 ${ARG_MAX_NUM_PROCS})
add_test(NAME ${ARG_TARGET}_n${numProcs} COMMAND ${MPIEXEC} --oversubscribe ${MPIEXEC_NUMPROC_FLAG} ${numProcs} ${MPIEXEC_PREFLAGS} ./${ARG_TARGET})
add_test(NAME ${ARG_TARGET}_n${numProcs} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${numProcs} ${MPIEXEC_PREFLAGS} ./${ARG_TARGET})
endforeach()
endfunction()

Expand Down

0 comments on commit 29e9c15

Please sign in to comment.