Welcome, Guest
Username: Password: Remember me

TOPIC: MPI incompatibility when installing HDF5 support on Ubuntu 20.04

MPI incompatibility when installing HDF5 support on Ubuntu 20.04 3 years 9 months ago #37828

  • JulienM
  • JulienM's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 6
Hello,
I was following this tutorial
hydro-informatics.github.io/install-telemac.html
And I am stuck into the installation of HDF5 support.
I got several messages of incompatibility because environmental variable have changed between MPI 2 and 3.
I have edited the variables in t_mpi.c (attached if that helps) and started editing t_cache.c but the variable MPI_Get_address(v3) has different parameters from the old MPI variable, MPI_address(v2)
I am a bit cold feet to go and find out which variable should be used.
Anyone can help?


make
Making all in src
make[1]: Entering directory '/home/julien/telemac/v8p2/optionals/temp/hdf5-1.8.21/src'
make  all-am
make[2]: Entering directory '/home/julien/telemac/v8p2/optionals/temp/hdf5-1.8.21/src'
make[2]: Leaving directory '/home/julien/telemac/v8p2/optionals/temp/hdf5-1.8.21/src'
make[1]: Leaving directory '/home/julien/telemac/v8p2/optionals/temp/hdf5-1.8.21/src'
Making all in test
make[1]: Entering directory '/home/julien/telemac/v8p2/optionals/temp/hdf5-1.8.21/test'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/julien/telemac/v8p2/optionals/temp/hdf5-1.8.21/test'
Making all in testpar
make[1]: Entering directory '/home/julien/telemac/v8p2/optionals/temp/hdf5-1.8.21/testpar'
  CC       t_cache.o
t_cache.c:399:5: warning: cast between incompatible function types from ‘herr_t (*)(H5F_t *, hid_t,  hbool_t,  haddr_t,  void *)’ {aka ‘int (*)(struct H5F_t *, int,  unsigned int,  long unsigned int,  void *)’} to ‘herr_t (*)(H5F_t *, hid_t,  hbool_t,  haddr_t,  void *, unsigned int *)’ {aka ‘int (*)(struct H5F_t *, int,  unsigned int,  long unsigned int,  void *, unsigned int *)’} [-Wcast-function-type]
  399 |     (H5C_flush_func_t)flush_datum,
      |     ^
t_cache.c: In function ‘setup_derived_types’:
t_cache.c:1218:34: warning: passing argument 1 of ‘MPI_Get_address’ makes pointer from integer without a cast [-Wint-conversion]
 1218 |         result = MPI_Get_address(9, block_len, displs, mpi_types, &mpi_mssg_t);
      |                                  ^
      |                                  |
      |                                  int
In file included from ../src/H5public.h:59,
                 from ../src/hdf5.h:22,
                 from ../test/h5test.h:23,
                 from t_cache.c:19:
/usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:1546:48: note: expected ‘const void *’ but argument is of type ‘int’
 1546 | OMPI_DECLSPEC  int MPI_Get_address(const void *location, MPI_Aint *address);
      |                                    ~~~~~~~~~~~~^~~~~~~~
t_cache.c:1218:37: warning: passing argument 2 of ‘MPI_Get_address’ from incompatible pointer type [-Wincompatible-pointer-types]
 1218 |         result = MPI_Get_address(9, block_len, displs, mpi_types, &mpi_mssg_t);
      |                                     ^~~~~~~~~
      |                                     |
      |                                     int *
In file included from ../src/H5public.h:59,
                 from ../src/hdf5.h:22,
                 from ../test/h5test.h:23,
                 from t_cache.c:19:
/usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:1546:68: note: expected ‘MPI_Aint *’ {aka ‘long int *’} but argument is of type ‘int *’
 1546 | OMPI_DECLSPEC  int MPI_Get_address(const void *location, MPI_Aint *address);
      |                                                          ~~~~~~~~~~^~~~~~~
t_cache.c:1218:18: error: too many arguments to function ‘MPI_Get_address’
 1218 |         result = MPI_Get_address(9, block_len, displs, mpi_types, &mpi_mssg_t);
      |                  ^~~~~~~~~~~~~~~
In file included from ../src/H5public.h:59,
                 from ../src/hdf5.h:22,
                 from ../test/h5test.h:23,
                 from t_cache.c:19:
/usr/lib/x86_64-linux-gnu/openmpi/include/mpi.h:1546:20: note: declared here
 1546 | OMPI_DECLSPEC  int MPI_Get_address(const void *location, MPI_Aint *address);
      |                    ^~~~~~~~~~~~~~~
t_cache.c: In function ‘serve_read_request’:
t_cache.c:1607:31: warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
 1607 |             reply.len       = data[target_index].len;
      |                               ^~~~
t_cache.c: In function ‘serve_write_request’:
t_cache.c:1836:27: warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
 1836 |         reply.len       = data[target_index].len;
      |                           ^~~~
t_cache.c: In function ‘clear_datum’:
t_cache.c:2335:9: warning: variable ‘idx’ set but not used [-Wunused-but-set-variable]
 2335 |     int idx;
      |         ^~~
t_cache.c: In function ‘destroy_datum’:
t_cache.c:2400:9: warning: variable ‘idx’ set but not used [-Wunused-but-set-variable]
 2400 |     int idx;
      |         ^~~
t_cache.c: In function ‘flush_datum’:
t_cache.c:2513:30: warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
 2513 |             mssg.len       = entry_ptr->len;
      |                              ^~~~~~~~~
t_cache.c:2457:13: warning: variable ‘cache_ptr’ set but not used [-Wunused-but-set-variable]
 2457 |     H5C_t * cache_ptr;
      |             ^~~~~~~~~
t_cache.c:2454:9: warning: variable ‘idx’ set but not used [-Wunused-but-set-variable]
 2454 |     int idx;
      |         ^~~
t_cache.c: In function ‘load_datum’:
t_cache.c:2633:22: warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
 2633 |     mssg.len       = entry_ptr->len;
      |                      ^~~~~~~~~
t_cache.c: In function ‘size_datum’:
t_cache.c:2778:9: warning: variable ‘idx’ set but not used [-Wunused-but-set-variable]
 2778 |     int idx;
      |         ^~~
t_cache.c: In function ‘server_smoke_check’:
t_cache.c:4995:26: warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
 4995 |         mssg.len       = data[world_mpi_rank].len;
      |                          ^~~~
t_cache.c:5100:26: warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘unsigned int’ may change value [-Wconversion]
 5100 |         mssg.len       = data[world_mpi_rank].len;
      |                          ^~~~
t_cache.c: In function ‘smoke_check_3’:
t_cache.c:5714:13: warning: declaration of ‘verbose’ shadows a global declaration [-Wshadow]
 5714 |     hbool_t verbose = FALSE;
      |             ^~~~~~~
t_cache.c:39:10: note: shadowed declaration is here
   39 | hbool_t  verbose = TRUE; /* used to control error messages */
      |          ^~~~~~~
t_cache.c: In function ‘smoke_check_5’:
t_cache.c:6399:13: warning: declaration of ‘verbose’ shadows a global declaration [-Wshadow]
 6399 |     hbool_t verbose = FALSE;
      |             ^~~~~~~
t_cache.c:39:10: note: shadowed declaration is here
   39 | hbool_t  verbose = TRUE; /* used to control error messages */
      |          ^~~~~~~
t_cache.c: In function ‘main’:
t_cache.c:7123:9: warning: too many arguments for format [-Wformat-extra-args]
 7123 |  printf("Failed to turn off atexit processing. Continue.\n", mpi_rank);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:846: t_cache.o] Error 1
make[1]: Leaving directory '/home/julien/telemac/v8p2/optionals/temp/hdf5-1.8.21/testpar'
make: *** [Makefile:586: all-recursive] Error 1
The administrator has disabled public write access.

MPI incompatibility when installing HDF5 support on Ubuntu 20.04 3 years 8 months ago #37924

  • yugi
  • yugi's Avatar
  • OFFLINE
  • openTELEMAC Guru
  • Posts: 851
  • Thank you received: 244
Hi,
What distribution of mpi are you using ?
I would suggest trying different mpi instead of modifying it.
There are 10 types of people in the world: those who understand binary, and those who don't.
The administrator has disabled public write access.

MPI incompatibility when installing HDF5 support on Ubuntu 20.04 3 years 8 months ago #37956

  • JulienM
  • JulienM's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 6
Yes since the post I have managed to setup my system.
I used the MPI distributed with Ubuntu 20.04 (v4.0.3)
Most of the issues were actually linked with deprecated libraries advised in the tutorial
The configuration that worked was installing MED v4.1 which is compatible with HDF5 1.10.5
MED is now in v5 and HDF5 in v1.12 if I remember well.
Hope this helps
The administrator has disabled public write access.
Moderators: borisb

The open TELEMAC-MASCARET template for Joomla!2.5, the HTML 4 version.