Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] aesa_v1_1.tar.gz(79 Kbytes)|
|Manuscript Title: A C++11 implementation of arbitrary-rank tensors for high-performance computing|
|Authors: Alejandro M. Aragón|
|Program title: cpp-array|
|Catalogue identifier: AESA_v1_1|
Distribution format: tar.gz
|Journal reference: Comput. Phys. Commun. 185(2014)3065|
|Programming language: C++.|
|Computer: All modern architectures.|
|Operating system: Linux/Unix/Mac OS.|
|RAM: Problem dependent|
|Keywords: C++, C++11, arbitrary-rank tensors, template metaprogramming, generic programming, expression templates, BLAS.|
|PACS: 02.10.Ud, 02.10.Yn.|
External routines: GNU CMake build system and BLAS implementation. NVIDIA CUBLAS for GPU computing.
Does the new version supersede the previous version?: Yes
Nature of problem:
Tensors are a basic building block for any program in scientific computing. Yet, tensors are a built-in component of the C++ programming language.
An arbitrary-rank tensor class template is crafted by using the new features introduced by the C++11 set of requirements. In addition, an entire expression template facility is built on top, to provide mathematical straightforward notation without damaging performance.
Reasons for new version:
The reason for this version is to make the library more portable.
Summary of revisions:
The first version of the library relied on the presence of a C interface to the BLAS library (CBLAS). This new version gives priority to a Fortran BLAS implementation when a Fortran compiler is provided during the configuration process. Some minor changes have also been made, including an improved Doxygen documentation, fixed installation when using CUDA, and fixed other minor bugs.
Problem dependent. The tests provided take only seconds. The examples take approximately 15 minutes.
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|