Hi everyone,

I'm facing an issue with the typing of the performance variables I try to register.

They are basically counters of type MCA_BASE_PVAR_CLASS_AGGREGATE, MCA_BASE_PVAR_CLASS_COUNTER, or MCA_BASE_PVAR_CLASS_SIZE depending on the case. In order to silence some warnings when using opal_atomic_add_*() functions they were switched from uint64_t to int64_t. But doing so, we loose some consistency in the code. It was then decided to move from int64_t to size_t, in order to keep consistency across every functions of our component's API.

The problem the following : I can't register properly my variables anymore, because of the restrictions over the types as defined in the MPI3.1 standard (Sec. 14.3.7, p.580), I can't define these variable as MCA_BASE_VAR_TYPE_SIZE_T, as they are not explicitly authorized. However, the SIZE_T type is not even allowed as type for performance variables, as it is not defined in the list given Section 14.3.5 p.571. So should this type never to be used for defining performance variables, and thus it should not be given as part of the enum mca_base_var_type_t type, or can it be considered as an alias for unsigned long or unsigned long long, and thus it should be possible to use them in the same cases unsigned long int and unsigned long long int are ?

Thenk you in advance for your answer,

Clement FOYER

_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

Reply via email to