手机版
你好,游客 登录 注册
背景:
阅读新闻

Boost 1.61发布,带来了新的CPU/CPU计算、插件管理和其他程序库

[日期:2016-06-15] 来源:infoq.com  作者:Sergio De Simone ,译者 金灵杰 [字体: ]

在1.60版本发布的5个月后,Boost发布了1.61版本,增加了一些新程序库,同时更新了许多程序库。

Boost 1.61包括4个新程序库:

  • Compute,使用OpenCL为多核CPU和GPU运算平台提供C++接口。OpenCL是一个开放标准,它允许创建运行在异构运算设备(如CPU和GPU)上的应用程序。该程序库提供管理OpenCL对象的类,例如设备(device)、内核(kernel)和命令队列(command_queues),同时也提供了允许开发者处理计算设备、与计算设备传输数据、迭代和转换计算设备的函数。这使得我们可以将数据传输到默认计算设备上,对数据进行转换,最后复制回宿主机:
std::vector host_vector(10000);
// 定义宿主机内容向量
// 获取默认设备,并且设置上下文
compute::device device = compute::system::default_device();
compute::context context(device);
compute::command_queue queue(context, device);
// 在设备上创建向量
compute::vector device_vector(host_vector.size(), context);
// 将数据从宿主机传输到设备上
compute::copy(
    host_vector.begin(), host_vector.end(), device_vector.begin(), queue
);
// 就地计算每个元素的平方根
compute::transform(
    device_vector.begin(),
    device_vector.end(),
    device_vector.begin(),
    compute::sqrt(),
    queue
);
// 将数据复制回宿主机
compute::copy(
    device_vector.begin(), device_vector.end(), host_vector.begin(), queue
);
  • DLL,一个旨在开发跨平台、可移植插件的程序库。DLL允许开发者加载其他程序库、导入本地函数和变量、查询程序库的段和符号表等。DLL插件可以通过extern “C”和BOOST_SYMBOL_EXPORT定义。客户端应用程序可以通过执行DLL插件的import函数加载动态链接库:
// 持有指向插件变量指针的变量
boost::shared_ptr<MY_PLUGIN_API> plugin;
plugin = dll::import<MY_PLUGIN_API>(
    full_path_to_library,
    name_of_symbol_to_import,
    dll::load_mode::append_decorations
);

DLL也支持动态链接库的引用计数,以更好的控制已加载插件的生命周期、在插件卸载时执行回调函数和其他一些功能。

  • Hana,一个元编程库,它能够提供操作异构序列的高级算法。对比现有元编程库,例如Boost.MPLBoost.Fusion,Hana统一了类型和值的操作。Hana提供了一系列容器类型,例如元组(tuple)、含无效值容器(optional)、映射(map)等,还有操作这些容器的算法集合,例如折叠(fold)、压缩(zip)、扁平化(flatten)等。
  • Metaparse,一个用于生成解析器的程序库,它能够在编译时解析文本或代码,并且可以返回一个类型、一个常量和一个运行时调用的C++函数等。Metaparse特别倾向用于创建一种嵌入式领域特定语言。Metaparse允许使用类似EBNF范式的语法定义上下文无关语法。它和另一个著名的元编程库Boost.Spirit的主要区别是后者产生运行时解析器,而Metaparse产生编译时解析器。

前文提到过,Boost 1.61也更新了许多现有程序库,包括Multiprecision(多倍精度数值库)、Optional(含无效值容器库)、Geometry(几何库)、Fusion(容器库)等等。

Ubuntu下编译安装boost库 http://www.linuxidc.com/Linux/2013-07/87573.htm

Ubuntu下编译boost 1.52b http://www.linuxidc.com/Linux/2013-02/79004.htm

VS2008下直接安装使用Boost库1.46.1版本 http://www.linuxidc.com/Linux/2014-08/105253.htm

Ubuntu编译安装boost并在eclipse C/C++中使用 http://www.linuxidc.com/Linux/2011-04/34790.htm

Boost 的详细介绍请点这里
Boost 的下载地址请点这里

查看英文原文:Boost 1.61 Brings New Libraries for CPU/CPU Computation, Plugin Management, and More

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-06/132336.htm

linux
相关资讯       Boost 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款