Frank Feinbube

Learn More
Using graphics hardware to enhance CPU-based standard desktop applications is a question not only of programming models but also of critical optimizations that are required to achieve true performance improvements. Two major hardware trends make parallel programming a crucial issue for all software engineers today: the rise of many-core CPU architectures(More)
With the ongoing internationalization of virtual laboratories , the integration of such infrastructures becomes more important. The meanwhile commonly accepted 'glue' for such legacy systems are service-oriented architectures, based on standardized and accepted Web service standards. We present our concept of the 'experiment as a ser-vice', where the idea(More)
Remote and virtual laboratories are commonly used in electronic engineering and computer science to provide hands-on experience for students. Web services have lately emerged as a standardized interfaces to remote laboratory experiments and simulators. One drawback of direct Web service interfaces to experiments is that the connected hardware could be(More)
Todays commercial off-the-shelf computer systems are multicore computing systems as a combination of CPU, graphic processor (GPU) and custom devices. In comparison with CPU cores, graphic cards are capable to execute hundreds up to thousands compute units in parallel. To benefit from these GPU computing resources, applications have to be parallelized and(More)
The domains of parallel and distributed computing have been converging continuously up to the degree that state-of-the-art server computer systems incorporate characteristics from both domains: They comprise a hierarchy of enclosures, where each enclosure houses multiple processor sockets and each socket again contains multiple memory controllers. A global(More)
GPU compute devices have become very popular for general purpose computations. However, the SIMD-like hardware of graphics processors is currently not well suited for irregular workloads, like searching unbalanced trees. In order to mitigate this drawback, NVIDIA introduced an extension to GPU programming models called dynamic parallelism. This extension(More)
Today, high‐level language virtual machines are custom‐made special purpose systems optimized for specific domains like embedded devices. Their implementation suffers from high complexity, strongly intertwined subsystems and little maintainability. This is caused by insufficient modularization techniques failing to represent the system ar‐ chitecture in the(More)
For the implementation of data-intensive C++ applications for cache coherent Non-Uniform Memory Access (NUMA) systems, both massive parallelism and data locality have to be considered. While massive parallelism has been largely understood, the shared memory paradigm is still deeply entrenched in the mindset of many C++ software developers. Hence, data(More)