Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
implement MPI_File_set_size
authorAugustin Degomme <adegomme@users.noreply.github.com>
Wed, 10 Mar 2021 19:03:04 +0000 (20:03 +0100)
committerAugustin Degomme <adegomme@users.noreply.github.com>
Wed, 10 Mar 2021 19:03:13 +0000 (20:03 +0100)
src/smpi/bindings/smpi_mpi.cpp
src/smpi/bindings/smpi_pmpi_file.cpp
src/smpi/include/smpi_file.hpp
src/smpi/mpi/smpi_file.cpp
teshsuite/smpi/mpich3-test/io/testlist

index 0d0362f..62bfcaf 100644 (file)
@@ -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))
index 97dbb67..d1879a8 100644 (file)
@@ -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)
index c89c1fe..1d73605 100644 (file)
@@ -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);
index e5f00dd..911ee58 100644 (file)
@@ -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_;
index 5466fe2..723623b 100644 (file)
@@ -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