TiViPE library and module creation

TiViPE has been created originally keeping in mind that users had created a library and wanted to use the available routines of the library within TiViPE without additional programming.

Many TiViPE users however start using TiViPE and the graphical icons, and find it an easy way to program until, they meet the moment that the graphical icon/module they have in mind to use does not exist. So far they never considered even to create a new module, but as soon as a new module needs to be created it is very likely that the required routine call needs to be programmed as well.

Continue reading “TiViPE library and module creation”


T. Lourens How to use OpenMP within TiViPE [334 KB pdf]. Technical Report, 16 pages, TiViPE, September 5, 2011.


The aim of TiViPE is to integrate different technologies in a seamless way using graphical icons [5]. Due to these icons the user does not need to have in depth knowledge of the underlying hardware architecture.
This report elaborates on the use of Open Multi Processing (OpenMP). OpenMP is driven by compiler directives in C, C++, or Fortran, hence should be used within the software libraries used for TiViPE rather than incorporation the code into the graphical icons directly.


  1. T. Lourens The Art of Parallel Processing using General Purpose Graphical Processing units –TiViPE software development [2.43 MB pdf]. Technical Report, 18 pages, TiViPE, September 14, 2010.


    The aim of this report to elaborate TiViPE modules that make use of NVIDIA’s compute unified device architecture (CUDA) programming. The focus will be on the construction of these programs making the best use of the GPU hardware using CUDA.

  2. T. Lourens. The Art of Parallel Processing using General Purpose Graphical Processing units –Hardware, CUDA introduction, and Software architecture[1160 KB pdf]. Technical Report, 26 pages, TiViPE, June 23, 2009.


    The aim of this report to elaborate on general purpose graphical processing unit (GP-GPU) programming and provide a cookbook for programming NVIDIA’s compute unified device architecture (CUDA). CUDA contains a programming language that is very similar to C, and thus easy to program. Programming CUDA appeared to result in algorithms that are at least one order of magnitude faster than a best effort multi core SSE implementation. When normal C/C++ code was used the differences where 2 to 3 orders in magnitude. The architecture of the GPU is elegant which makes it easy to construct a hybrid model of data-transfer and pure instruction (or floating point) processing that is much easier to understand than a SSE or cache optimized CPU model. The GPUs as computational units rapidly evolving compared to the CPU, the gap between CPU on both data-transfer and computational power is more than 10 fold, making the GPU an excellent candidate for real time parallel data processing. The latest generation GPUs has become powerful enough to make a single PC solution to become sufficient to control a for instance a medical imaging system. It implies size reduction, cost reduction, energy reduction, programming effort reduction, and lifting on off-the-shelf consumer technology. A follow up report on CUDA parallel computing using TiViPE is available [2]. In this report TiViPE programs using parallelism will be discussed together with the respective computational times for different datatypes.