15. The HyperDrive technology
HyperDrive is a core library including several time-critical functions required by VEGA ZZ for high speed computing. The highly optimized and and parallel code, especially designed for the modern CPUs, allows to speed-up the programs and make faster the development without deep skills in programming. Moreover, the library offers features that are useful not only in developing of molecular modelling software, but also of generic application. In particular, the key features are here summarized:
You can develop the same application for Linux (ARM, x86 and x64) and Windows (x86 and x64) without changes in the source code.
Same software for single or
The library checks the number of CPUs and automatically switches itself from sequential to parallel mode.
Some routines (such as virtual LogP calculation) are written to run on the GPU thanks to OpenCL abstraction layer.
Simultaneous multithreading (SMT)
It uses the full power of modern multiscalar CPUs with hardware multithreading such as Intel i5, i6, i9 and AMD Ryzen 5, 7, Threadripper.
Multi core CPU ready
The latest multi core CPUs provided by AMD and Intel are detected and the parallel execution is automatically enabled.
The functions that are more frequently called, are written in assembly and optimized by using SSE SIMD instruction set.
No special compiler required.
You can use your preferred C/C++ compiler. C++ envelops are included in the headers.
HyperDrive requires an initialization phase that is executed by the host application when it starts. The host application can choose the appropriate HyperDrive version for the installed microprocessor and the HyperDrive detects the number of CPUs switching itself to run in sequential mode (one CPU) or in parallel mode:
After the initialization phase, the host application can call the HyperDrive functions in transparent mode as a normal library: the HyperDrive library select internally the most appropriate code for that hardware/software system and if it can run more than one thread at the same time at hardware level such as for multicore or SMT CPUs, the code is executed in parallel:
HyperDrive library includes several functions that are shown in the following table according to their application field:
|Molecular modelling functions
|Mathematical and statistical functions