This package is intended to provide the user with threadsafe containers and classes for applications in High Performance Computing (HPC) where parallel programming is commonplace. Today’s multi-core computers bring that parallelism into the realm of everyday use. It is important to provide thread safe containers and classes in this environment. The HPC Template Library (HTL) aims to replace certain portions of the STL. It is a merger and rewrite of classes from the STL, QT, Boost, and SigSlots libraries. All of the containers are now threadsafe implementing mutexes around critical operations. It is designed as a dynamic linked library for the user to include directly in their projects. It is written for the Windows platform, although the user could adapt it for use in Linux / Unix by changing only the HtlThread and HtlTime sub packages. The code is designed to be easy to read and well documented. The HTL has 14 sub packages to parcel functionality of different classes. The license for the Library is LGPL. The source code is also posted on this site.
HtlThread
HtlTime
The HTL has 14 sub packages to parcel functionality of different classes. The packages are as follows (listed in alphabetical order). As can be seen, there are a few outlying classes that need to be added, but HTL is mostly operational. The development of unit test code for the library has also commenced and is in the code package. Testing will continue.
Package Description
Operational Status
HtlArchive
Archive Model (100%)
XML (100%)
XDL(50%)
Binary(0%) to be added
HtlAtomic
(0 %) to be added
HtlBase
(100%)
HtlContainer
Htl1DVector
Htl2DArray
Htl3DMatrix
HtlMap
(90%) Vectors of complex objects needs testing
HtlGlobal
HtlGUID
HtlMacro
HtlMath
<math.h>
HtlRandNumGen
HtlSignalSlot
HtlString
string
std::string
HtlTest
(75%) semaphore needs to be added and unit testing needed
HtlTime: contains elapsed time timers and countdown timers.
(50%) countdown timer needs to be added