Просто быстрый вопрос о типах данных MPI. Я хочу предложить поддержку одинарной и двойной точности, которую я делаю с помощью директив препроцессора. Для моей последовательной программы я делаю
#if defined(USE_SINGLE_PRECISION)
using floatT = float;
#elif defined(USE_DOUBLE_PRECISION)
using floatT = double;
#endif
Наивно, хотя я мог бы сделать что-то подобное для MPI, то есть
#if defined(USE_SINGLE_PRECISION)
using MPI_FLOAT_T = MPI_FLOAT;
#elif defined(USE_DOUBLE_PRECISION)
using MPI_FLOAT_T = MPI_DOUBLE;
#endif
Кажется, что MPI_FLOAT
и MPI_DOUBLE
не вполне то, что я ожидал бы от них. Есть ли это легко исправить? Я, наверное, просто что-то здесь упускаю.