65.9K
CodeProject 正在变化。 阅读更多。
Home

HPC 模板库,STL 的补充

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.88/5 (11投票s)

2013年3月25日

MIT

3分钟阅读

viewsIcon

39611

downloadIcon

1289

HPC 模板库是标准模板库的补充,提供线程安全的容器。

下载源代码

作者:Anthony Daniels

引言

此软件包旨在为用户提供线程安全的容器和类,用于高性能计算 (HPC) 中的应用,其中并行编程很常见。如今,多核计算机将这种并行性带入了日常使用领域。在这种环境中提供线程安全的容器和类非常重要。 HPC 模板库 (HTL) 旨在取代 STL 的某些部分。 它是来自 STL、QT、Boost 和 SigSlots 库的类的合并和重写。所有容器现在都通过在关键操作周围实现互斥锁来实现线程安全。它被设计为动态链接库,供用户直接包含在他们的项目中。 它专为 Windows 平台编写,尽管用户可以通过仅更改 HtlThreadHtlTime 子包来将其用于 Linux / Unix。代码设计为易于阅读且文档齐全。 HTL 具有 14 个子包,用于分配不同类的功能。该库的许可证是 LGPL。此库的 CSharp 版本已发布在此站点上。

HTL 包概述

HTL 具有 14 个子包,用于分配不同类的功能。这些包如下所示(按字母顺序排列)。可以看出,需要添加一些遗漏的类,但 HTL 大部分已投入使用。 库的单元测试代码的开发也已开始,并在代码包中。 测试将继续进行。

包说明 运行状态
HtlArchive:包含序列化和反序列化对象所需的所有类。 它包含一个通用的存档树/节点系统和三个不同的序列化程序包(XML、XDL、JSON、Binary)。

存档模型 (100%)

XML (100%)

XDL(100%)

JSON (100%)

二进制(0%) 待添加

HtlAtomic:包含一个模板类,该类允许通过其运算符将任何对象转换为原子对象(线程安全)。

(0 %) 待添加

HtlBase:包含使用 HTL 系统使对象可序列化的基类。 它还有一个基本对象,该对象能够使用 HTL 信号槽系统进行信号槽。 –(完全运行)

(100%)

HtlContainer:包含 HTL 的所有容器类 (Htl1DVectorHtl1DListHtl2DArrayHtl3DMatrixHtlListMapHtlMap 等)。 此集合中的所有容器都可以在 HTL 系统中进行序列化。 –(完全运行)

(100%)

HtlGlobal:包含全局使用的枚举类型、结构等。–(完全运行)

(100%)

HtlGUID:包含三个全局唯一标识符 (GUID); 64 位、128 位和 256 位。 –(完全运行)

(100%)

HtlMacro:包含 HTL 中允许的宏集。 HTL 很少使用宏,因为一般来说,宏是一种糟糕的编程实践。

(100%)

HtlMath:包含补充 STL <math.h> 库的基本数学函数。

(100%)

HtlRandNumGen:包含用于随机数生成器和随机分布生成器的系统。

(100%)

HtlSignalSlot:这是一个基于 sigslots 库的信号和槽库。 尽管如此,该库已进行了一些更改。

(100%)

HtlString:包含替换 std::stringstring 类。 它们是可互操作的,这意味着您可以在 HtlStringstd::string 之间直接切换。

(100%)

HtlTest:包含 HTL 单元测试系统。 这是一个基于测试名称的单元测试系统,类似于 boost,但其中未使用宏。

(100%)

HtlThread:包含所有与线程相关的类,包括互斥锁、信号量、线程等。

(100%)

HtlTime:包含经过时间计时器和倒计时计时器。

(50%) 需要添加倒计时计时器

© . All rights reserved.