ompi icon indicating copy to clipboard operation
ompi copied to clipboard

Update collective framework count/disp arrays for bigcount

Open jtronge opened this issue 1 year ago • 2 comments

This updates the collective framework functions using count/displacement arrays to support bigcount. Instead of directly using pointers to bigcount and non-bigcount arrays, this adds special descriptor types, ompi_count_array and ompi_disp_array, that internally hold a union of either type. Collective components can now access count and displacement values through inline get functions on the descriptors, allowing use of both bigcount/non-bigcount arrays, depending on how the descriptors were initialized.

jtronge avatar Jun 14 '24 15:06 jtronge

I believe hcoll is being replaced by UCC so i don't think there's going to be an investement of time in embiggening hcoll unless it already is.

hppritcha avatar Jun 19 '24 17:06 hppritcha

well the suggested code doesn't even compile but I'll see about using the idea

make[2]: Entering directory '/usr/projects/artab/users/hpp/ompi/ompi/datatype'
  CC       ompi_datatype_module.lo
In file included from ../../ompi/mca/coll/coll.h:85,
                 from ../../ompi/instance/instance.h:22,
                 from ompi_datatype_module.c:42:
../../ompi/util/count_disp_array.h: In function 'ompi_count_array_init':
../../ompi/util/count_disp_array.h:26:48: error: invalid operands to binary | (have 'const int *' and 'int')
   26 |     array->data.int_array = (const int *)(data | 0x1);
      |                                                ^
../../ompi/util/count_disp_array.h: In function 'ompi_count_array_is_64bit':
../../ompi/util/count_disp_array.h:55:39: error: invalid operands to binary & (have 'const size_t *' {aka 'const long unsigned int *'} and 'int')
   55 |     return !(array->data.size_t_array & 0x1);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~ ^
      |                         |
      |                         const size_t * {aka const long unsigned int *}

hppritcha avatar Jun 28 '24 17:06 hppritcha

@bosilca okay there's a commit with your suggested change - modified so its compilable and correct. @devreal what do you think of this?

hppritcha avatar Jul 01 '24 15:07 hppritcha