Краткий ответ - нет, самый короткий тип данных MPI - MPI_BYTE, вы не можете создать тип, который будет немного. (У привязок Фортрана есть MPI_LOGICAL, который соответствует локальному логическому типу, но почти всегда соответствует целому или, может быть, байту, а не биту).
Теперь это не обязательно проблема; если бы у вас был битовый массив, вы могли бы просто округлить до следующего целого числа байтов, отправить его и просто проигнорировать последние несколько битов. (это в значительной степени то, что вы должны сделать при создании таблицы в любом случае). Но у меня есть несколько вопросов.
Насколько велики ваши сообщения? А что у тебя за сеть? Вы уверены ограничены ли пропускная способность, а не задержка?
Если ваши сообщения малы (скажем, под МБ), то, скорее всего, у вас преобладает задержка сообщений, а не пропускная способность, и уменьшение размера сообщений не поможет. (Вы можете оценить это, используя тесты pingpong - скажем, в тестах Intel MPI - чтобы увидеть, в каких размерах отключается ваша эффективная пропускная способность). Если вы находитесь в этом режиме, то это, скорее всего, ухудшит, а не улучшит, так как обмен данными не ускорится, но дополнительные затраты на индексацию в битовый массив, вероятно, замедлят ситуацию.
С другой стороны, если вы отправляете большие сообщения (например, размером в МБ) и / или у вас ограниченный объем памяти, это может быть хорошо.