From b903641143d708b08064fcb86676d46d147a3970 Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Wed, 10 Mar 2021 20:03:04 +0100 Subject: [PATCH] implement MPI_File_set_size --- src/smpi/bindings/smpi_mpi.cpp | 2 +- src/smpi/bindings/smpi_pmpi_file.cpp | 7 +++++++ src/smpi/include/smpi_file.hpp | 1 + src/smpi/mpi/smpi_file.cpp | 5 +++++ teshsuite/smpi/mpich3-test/io/testlist | 2 +- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/smpi/bindings/smpi_mpi.cpp b/src/smpi/bindings/smpi_mpi.cpp index 0d0362f1a4..62bfcaf220 100644 --- a/src/smpi/bindings/smpi_mpi.cpp +++ b/src/smpi/bindings/smpi_mpi.cpp @@ -376,6 +376,7 @@ WRAPPED_PMPI_CALL_ERRHANDLER_FILE(int, MPI_File_write_ordered,(MPI_File fh, cons WRAPPED_PMPI_CALL_ERRHANDLER_FILE(int, MPI_File_seek_shared,(MPI_File fh, MPI_Offset offset, int whence), (fh, offset, whence)) WRAPPED_PMPI_CALL_ERRHANDLER_FILE(int, MPI_File_get_position_shared,(MPI_File fh, MPI_Offset *offset), (fh, offset)) WRAPPED_PMPI_CALL_ERRHANDLER_FILE(int, MPI_File_get_size,(MPI_File fh, MPI_Offset *size), (fh, size)) +WRAPPED_PMPI_CALL_ERRHANDLER_FILE(int, MPI_File_set_size,(MPI_File fh, MPI_Offset size), (fh, size)) WRAPPED_PMPI_CALL_ERRHANDLER_FILE(int, MPI_File_get_group,(MPI_File fh, MPI_Group *group), (fh, group)) WRAPPED_PMPI_CALL_ERRHANDLER_FILE(int, MPI_File_get_amode,(MPI_File fh, int *amode), (fh, amode)) WRAPPED_PMPI_CALL_ERRHANDLER_FILE(int, MPI_File_sync,(MPI_File fh), (fh)) @@ -413,7 +414,6 @@ UNIMPLEMENTED_WRAPPED_PMPI_CALL(int, MPI_Dist_graph_neighbors, (MPI_Comm comm, i UNIMPLEMENTED_WRAPPED_PMPI_CALL(int, MPI_Dist_graph_neighbors_count, (MPI_Comm comm, int *indegree, int *outdegree, int *weighted), (comm, indegree, outdegree, weighted)) UNIMPLEMENTED_WRAPPED_PMPI_CALL(MPI_Fint, MPI_File_c2f,(MPI_File file), (file)) UNIMPLEMENTED_WRAPPED_PMPI_CALL_NORETURN(MPI_File, MPI_File_f2c,(MPI_Fint file), (file)) -UNIMPLEMENTED_WRAPPED_PMPI_CALL(int, MPI_File_set_size,(MPI_File fh, MPI_Offset size), (fh, size)) UNIMPLEMENTED_WRAPPED_PMPI_CALL(int, MPI_File_preallocate,(MPI_File fh, MPI_Offset size), (fh, size)) UNIMPLEMENTED_WRAPPED_PMPI_CALL(int, MPI_File_iread_at,(MPI_File fh, MPI_Offset offset, void *buf, int count, MPI_Datatype datatype, MPI_Request *request), (fh, offset, buf, count, datatype, request)) UNIMPLEMENTED_WRAPPED_PMPI_CALL(int, MPI_File_iwrite_at,(MPI_File fh, MPI_Offset offset, const void *buf,int count, MPI_Datatype datatype, MPI_Request *request), (fh, offset, buf, count, datatype, request)) diff --git a/src/smpi/bindings/smpi_pmpi_file.cpp b/src/smpi/bindings/smpi_pmpi_file.cpp index 97dbb67317..d1879a8553 100644 --- a/src/smpi/bindings/smpi_pmpi_file.cpp +++ b/src/smpi/bindings/smpi_pmpi_file.cpp @@ -317,6 +317,13 @@ int PMPI_File_get_size(MPI_File fh, MPI_Offset* size) return MPI_SUCCESS; } +int PMPI_File_set_size(MPI_File fh, MPI_Offset size) +{ + CHECK_FILE(1, fh) + fh->set_size(size); + return MPI_SUCCESS; +} + int PMPI_File_get_amode(MPI_File fh, int* amode) { CHECK_FILE(1, fh) diff --git a/src/smpi/include/smpi_file.hpp b/src/smpi/include/smpi_file.hpp index c89c1fef3f..1d7360545f 100644 --- a/src/smpi/include/smpi_file.hpp +++ b/src/smpi/include/smpi_file.hpp @@ -49,6 +49,7 @@ class File : public F2C{ int get_view(MPI_Offset* disp, MPI_Datatype* etype, MPI_Datatype* filetype, char* datarep) const; MPI_Info info(); void set_info( MPI_Info info); + void set_size(int size); static int read(MPI_File fh, void* buf, int count, const Datatype* datatype, MPI_Status* status); static int read_shared(MPI_File fh, void* buf, int count, const Datatype* datatype, MPI_Status* status); static int read_ordered(MPI_File fh, void* buf, int count, const Datatype* datatype, MPI_Status* status); diff --git a/src/smpi/mpi/smpi_file.cpp b/src/smpi/mpi/smpi_file.cpp index e5f00dd429..911ee5848b 100644 --- a/src/smpi/mpi/smpi_file.cpp +++ b/src/smpi/mpi/smpi_file.cpp @@ -284,6 +284,11 @@ namespace smpi{ return file_->size(); } + void File::set_size(int size) + { + file_->write(size, true); + } + int File::flags() const { return flags_; diff --git a/teshsuite/smpi/mpich3-test/io/testlist b/teshsuite/smpi/mpich3-test/io/testlist index 5466fe2838..723623b75d 100644 --- a/teshsuite/smpi/mpich3-test/io/testlist +++ b/teshsuite/smpi/mpich3-test/io/testlist @@ -13,7 +13,7 @@ resized2 1 bigtype 1 hindexed_io 1 simple_collective 1 arg="/scratch/simple_collective.testfile" -#external32-derived-dtype 1 +external32-derived-dtype 1 #i_bigtype 1 mpiversion=3.1 #i_hindexed_io 1 mpiversion=3.1 #i_rdwrord 4 mpiversion=3.1 -- 2.20.1