Note that I'm using the numpy interface (rather than pickle/unpickle) because irecv is not supported for general objects.