I use mpich with MPI_THREAD_MULTIPLE support. From boost documentation:
For variable-length data, e.g., serialized types and packed archives, two messages will be sent via MPI_Send: one containing the length of the data and the second containing the data itself
Is it safe to send serialized types with same tag, to same rank from different threads? Receive rank has only one thread for receiving messages
It seems it does not work. I must use unique tag for each thread.