【发布时间】:2014-06-07 12:28:50
【问题描述】:
我正在寻找一种方法来压缩 boost.MPI 广播、分散、收集请求中的序列化数据。要发送的类包含需要通过无线网络传输的大量数据(400MB)。虽然它确实发送,但它需要> 20分钟。一种前进的方法是压缩数据,这在 boost 压缩存档中是可能的(见下文)。你知道 boost.MPI 是否存在类似的压缩方法吗?如果没有,除了实现文件服务器之外,还有什么关于发送这么多数据的建议吗?
示例要发送的类
class big {
...
template<class Archive> void serialize(Archive & ar, const unsigned int version){
ar & big_element1;
ar & big_element2;
}
}
示例提升压缩存档
std::ifstream ifs(fname, std::ios::binary);
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
in.push(boost::iostreams::zlib_decompressor());
in.push(ifs);
boost::archive::binary_iarchive ia(in);
ia >> *this;
【问题讨论】:
-
问题是什么?你已经完成了,看起来。能不把序列化存档挂到过滤流吗?