@misc{DresslerSteinke, author = {Dreßler, Sebastian and Steinke, Thomas}, title = {An Automated Approach for Estimating the Memory Footprint of Non-Linear Data Objects}, issn = {1438-0064}, doi = {10.1007/978-3-642-54420-0_25}, url = {http://nbn-resolving.de/urn:nbn:de:0297-zib-42224}, abstract = {Current programming models for heterogeneous devices with disjoint physical memory spaces require explicit allocation of device memory and explicit data transfers. While it is quite easy to manually implement these operations for linear data objects like arrays, this task becomes more difficult for non-linear objects, e.g. linked lists or multiple inherited classes. The difficulties arise due to dynamic memory requirements at run-time and the dependencies between data structures. In this paper we present a novel method to build a graph-based static data type description which is used to create code for injectable functions that automatically determine the memory footprint of data objects at run-time. Our approach is extensible to implement automatically generated optimized data transfers across physical memory spaces.}, language = {en} } @misc{DresslerSteinke, author = {Dreßler, Sebastian and Steinke, Thomas}, title = {A Novel Hybrid Approach to Automatically Determine Kernel Interface Data Volumes}, issn = {1438-0064}, url = {http://nbn-resolving.de/urn:nbn:de:0297-zib-15569}, abstract = {Scheduling algorithms for heterogeneous platforms make scheduling decisions based on several metrics. One of these metrics is the amount of data to be transferred from and to the accelerator. However, the automated determination of this metric is not a simple task. A few schedulers and runtime systems solve this problem by using regression models, which are imprecise though. Our novel approach for the determination of data volumes removes this limitation and thus provides a solution to obtain exact information.}, language = {en} } @incollection{NoackWendeZitzlsbergeretal., author = {Noack, Matthias and Wende, Florian and Zitzlsberger, Georg and Klemm, Michael and Steinke, Thomas}, title = {KART - A Runtime Compilation Library for Improving HPC Application Performance}, series = {High Performance Computing: ISC High Performance 2017 International Workshops, DRBSD, ExaComm, HCPM, HPC-IODC, IWOPH, IXPUG, P^3MA, VHPC, Visualization at Scale, WOPSSS, Frankfurt, Germany, June 18-22, 2017, Revised Selected Papers}, volume = {10524}, booktitle = {High Performance Computing: ISC High Performance 2017 International Workshops, DRBSD, ExaComm, HCPM, HPC-IODC, IWOPH, IXPUG, P^3MA, VHPC, Visualization at Scale, WOPSSS, Frankfurt, Germany, June 18-22, 2017, Revised Selected Papers}, publisher = {Springer International Publishing}, doi = {10.1007/978-3-319-67630-2_29}, pages = {389 -- 403}, abstract = {The effectiveness of ahead-of-time compiler optimization heavily depends on the amount of available information at compile time. Input-specific information that is only available at runtime cannot be used, although it often determines loop counts, branching predicates and paths, as well as memory-access patterns. It can also be crucial for generating efficient SIMD-vectorized code. This is especially relevant for the many-core architectures paving the way to exascale computing, which are more sensitive to code-optimization. We explore the design-space for using input-specific information at compile-time and present KART, a C++ library solution that allows developers tocompile, link, and execute code (e.g., C, C++ , Fortran) at application runtime. Besides mere runtime compilation of performance-critical code, KART can be used to instantiate the same code multiple times using different inputs, compilers, and options. Other techniques like auto-tuning and code-generation can be integrated into a KART-enabled application instead of being scripted around it. We evaluate runtimes and compilation costs for different synthetic kernels, and show the effectiveness for two real-world applications, HEOM and a WSM6 proxy.}, language = {en} } @article{AlhaddadFoerstnerGrothetal., author = {Alhaddad, Samer and F{\"o}rstner, Jens and Groth, Stefan and Gr{\"u}newald, Daniel and Grynko, Yevgen and Hannig, Frank and Kenter, Tobias and Pfreundt, Franz-Josef and Plessl, Christian and Schotte, Merlind and Steinke, Thomas and Teich, J{\"u}rgen and Weiser, Martin and Wende, Florian}, title = {HighPerMeshes - A Domain-Specific Language for Numerical Algorithms on Unstructured Grids}, series = {Euro-Par 2020: Parallel Processing Workshops.}, journal = {Euro-Par 2020: Parallel Processing Workshops.}, publisher = {Springer}, doi = {10.1007/978-3-030-71593-9_15}, pages = {185 -- 196}, abstract = {Solving partial differential equations on unstructured grids is a cornerstone of engineering and scientific computing. Nowadays, heterogeneous parallel platforms with CPUs, GPUs, and FPGAs enable energy-efficient and computationally demanding simulations. We developed the HighPerMeshes C++-embedded Domain-Specific Language (DSL) for bridging the abstraction gap between the mathematical and algorithmic formulation of mesh-based algorithms for PDE problems on the one hand and an increasing number of heterogeneous platforms with their different parallel programming and runtime models on the other hand. Thus, the HighPerMeshes DSL aims at higher productivity in the code development process for multiple target platforms. We introduce the concepts as well as the basic structure of the HighPer-Meshes DSL, and demonstrate its usage with three examples, a Poisson and monodomain problem, respectively, solved by the continuous finite element method, and the discontinuous Galerkin method for Maxwell's equation. The mapping of the abstract algorithmic description onto parallel hardware, including distributed memory compute clusters is presented. Finally, the achievable performance and scalability are demonstrated for a typical example problem on a multi-core CPU cluster.}, language = {en} } @inproceedings{WendeNoackSteinkeetal., author = {Wende, Florian and Noack, Matthias and Steinke, Thomas and Klemm, Michael and Zitzlsberger, Georg and Newburn, Chris J.}, title = {Portable SIMD Performance with OpenMP* 4.x Compiler Directives}, volume = {Euro-Par 2016: Parallel Processing: 22nd International Conference on Parallel and Distributed Computing}, editor = {Dutot, Pierre-Francois and Trystram, Denis}, publisher = {Springer International Publishing}, isbn = {978-3-319-43659-3}, doi = {10.1007/978-3-319-43659-3_20}, abstract = {Effective vectorization is becoming increasingly important for high performance and energy efficiency on processors with wide SIMD units. Compilers often require programmers to identify opportunities for vectorization, using directives to disprove data dependences. The OpenMP 4.x SIMD directives strive to provide portability. We investigate the ability of current compilers (GNU, Clang, and Intel) to generate SIMD code for microbenchmarks that cover common patterns in scientific codes and for two kernels from the VASP and the MOM5/ERGOM application. We explore coding strategies for improving SIMD performance across different compilers and platforms (Intel® Xeon® processor and Intel® Xeon Phi™ (co)processor). We compare OpenMP* 4.x SIMD vectorization with and without vector data types against SIMD intrinsics and C++ SIMD types. Our experiments show that in many cases portable performance can be achieved. All microbenchmarks are available as open source as a reference for programmers and compiler experts to enhance SIMD code generation.}, language = {en} } @article{WendeMarsmanKimetal., author = {Wende, Florian and Marsman, Martijn and Kim, Jeongnim and Vasilev, Fedor and Zhao, Zhengji and Steinke, Thomas}, title = {OpenMP in VASP: Threading and SIMD}, series = {International Journal of Quantum Chemistry}, journal = {International Journal of Quantum Chemistry}, number = {Emerging Architectures in Computational Chemistry}, publisher = {Wiley Online Library}, doi = {10.1002/qua.25851}, pages = {e25851}, abstract = {The Vienna Ab initio Simulation Package (VASP) is a widely used electronic structure code that originally exploits process-level parallelism through the Message Passing Interface (MPI) for work distribution within and across nodes. Architectural changes of modern parallel processors urge programmers to address thread- and data-level parallelism as well to benefit most from the available compute resources within a node. We describe for VASP how to approach for an MPI + OpenMP parallelization including data-level parallelism through OpenMP SIMD constructs together with a generic high-level vector coding scheme. We can demonstrate an improved scalability of VASP and more than 20\% gain over the MPI-only version, as well as a 2x increased performance of collective operations using the multiple-endpoint MPI feature. The high-level vector coding scheme applied to VASP's general gradient approximation routine gives up 9x performance gain on AVX512 platforms with the Intel compiler.}, language = {en} } @inproceedings{WendeNoackSchuettetal., author = {Wende, Florian and Noack, Matthias and Sch{\"u}tt, Thorsten and Sachs, Stephen and Steinke, Thomas}, title = {Application Performance on a Cray XC30 Evaluation System with Xeon Phi Coprocessors at HLRN-III}, series = {Cray User Group}, booktitle = {Cray User Group}, language = {en} } @inproceedings{WendeMarsmanSteinke, author = {Wende, Florian and Marsman, Martijn and Steinke, Thomas}, title = {On Enhancing 3D-FFT Performance in VASP}, series = {CUG Proceedings}, booktitle = {CUG Proceedings}, language = {en} } @misc{WendeSteinke, author = {Wende, Florian and Steinke, Thomas}, title = {Swendsen-Wang Multi-Cluster Algorithm for the 2D/3D Ising Model on Xeon Phi and GPU}, issn = {1438-0064}, doi = {10.1145/2503210.2503254}, url = {http://nbn-resolving.de/urn:nbn:de:0297-zib-42187}, abstract = {Simulations of the critical Ising model by means of local update algorithms suffer from critical slowing down. One way to partially compensate for the influence of this phenomenon on the runtime of simulations is using increasingly faster and parallel computer hardware. Another approach is using algorithms that do not suffer from critical slowing down, such as cluster algorithms. This paper reports on the Swendsen-Wang multi-cluster algorithm on Intel Xeon Phi coprocessor 5110P, Nvidia Tesla M2090 GPU, and x86 multi-core CPU. We present shared memory versions of the said algorithm for the simulation of the two- and three-dimensional Ising model. We use a combination of local cluster search and global label reduction by means of atomic hardware primitives. Further, we describe an MPI version of the algorithm on Xeon Phi and CPU, respectively. Significant performance improvements over known im plementations of the Swendsen-Wang algorithm are demonstrated.}, language = {en} } @misc{WendeLaubenderSteinke, author = {Wende, Florian and Laubender, Guido and Steinke, Thomas}, title = {Integration of Intel Xeon Phi Servers into the HLRN-III Complex: Experiences, Performance and Lessons Learned}, issn = {1438-0064}, url = {http://nbn-resolving.de/urn:nbn:de:0297-zib-49990}, abstract = {The third generation of the North German Supercomputing Alliance (HLRN) compute and storage facilities comprises a Cray XC30 architecture with exclusively Intel Ivy Bridge compute nodes. In the second phase, scheduled for November 2014, the HLRN-III configuration will undergo a substantial upgrade together with the option of integrating accelerator nodes into the system. To support the decision-making process, a four-node Intel Xeon Phi cluster is integrated into the present HLRN-III infrastructure at ZIB. This integration includes user/project management, file system access and job management via the HLRN-III batch system. For selected workloads, in-depth analysis, migration and optimization work on Xeon Phi is in progress. We will report our experiences and lessons learned within the Xeon Phi installation and integration process. For selected examples, initial results of the application evaluation on the Xeon Phi cluster platform will be discussed.}, language = {en} } @misc{WendeSteinkeReinefeld, author = {Wende, Florian and Steinke, Thomas and Reinefeld, Alexander}, title = {The Impact of Process Placement and Oversubscription on Application Performance: A Case Study for Exascale Computing}, issn = {1438-0064}, url = {http://nbn-resolving.de/urn:nbn:de:0297-zib-53560}, abstract = {With the growing number of hardware components and the increasing software complexity in the upcoming exascale computers, system failures will become the norm rather than an exception for long-running applications. Fault-tolerance can be achieved by the creation of checkpoints during the execution of a parallel program. Checkpoint/Restart (C/R) mechanisms allow for both task migration (even if there were no hardware faults) and restarting of tasks after the occurrence of hardware faults. Affected tasks are then migrated to other nodes which may result in unfortunate process placement and/or oversubscription of compute resources. In this paper we analyze the impact of unfortunate process placement and oversubscription of compute resources on the performance and scalability of two typical HPC application workloads, CP2K and MOM5. Results are given for a Cray XC30/40 with Aries dragonfly topology. Our results indicate that unfortunate process placement has only little negative impact while oversubscription substantially degrades the performance. The latter might be only (partially) beneficial when placing multiple applications with different computational characteristics on the same node.}, language = {en} } @misc{WendeSteinkeCordes, author = {Wende, Florian and Steinke, Thomas and Cordes, Frank}, title = {Multi-threaded Kernel Offloading to GPGPU Using Hyper-Q on Kepler Architecture}, issn = {1438-0064}, url = {http://nbn-resolving.de/urn:nbn:de:0297-zib-50362}, abstract = {Small-scale computations usually cannot fully utilize the compute capabilities of modern GPGPUs. With the Fermi GPU architecture Nvidia introduced the concurrent kernel execution feature allowing up to 16 GPU kernels to execute simultaneously on a shared GPU device for a better utilization of the respective resources. Insufficient scheduling capabilities in this respect, however, can significantly reduce the theoretical concurrency level. With the Kepler GPU architecture Nvidia addresses this issue by introducing the Hyper-Q feature with 32 hardware managed work queues for concurrent kernel execution. We investigate the Hyper-Q feature within heterogeneous workloads with multiple concurrent host threads or processes offloading computations to the GPU each. By means of a synthetic benchmark kernel and a hybrid parallel CPU-GPU real-world application, we evaluate the performance obtained with Hyper-Q on GPU and compare it against a kernel reordering mechanism introduced by the authors for the Fermi architecture.}, language = {en} } @inproceedings{BrookFullerSwinburneetal., author = {Brook, Glenn and Fuller, Douglas and Swinburne, John and Christgau, Steffen and L{\"a}uter, Matthias and Rodrigues Pel{\´a}, Ronaldo and Lewin, Stein and Christian, Tuma and Steinke, Thomas}, title = {An Early Scalability Study of Omni-Path Express}, address = {Hamburg}, organization = {ISC 2022 IXPUG}, doi = {10.13140/RG.2.2.21353.57442}, pages = {8}, abstract = {This work provides a brief description of Omni-Path Express and the current status of its development, stability, and performance. Basic benchmarks that highlight the gains of OPX over PSM2 are provided, and the results of an initial performance and scalability study of several applications are presented.}, language = {en} } @misc{MeyerSteinkeBrandletal., author = {Meyer, Michael and Steinke, Thomas and Brandl, Maria and S{\"u}hnel, J{\"u}rgen}, title = {Density functional study of guanine and uracil quartets and of guanine quartet metal/ion complexes}, url = {http://nbn-resolving.de/urn:nbn:de:0297-zib-5842}, number = {00-16}, abstract = {The structures and interaction energies of guanine and uracil quartets have been determined by B3LYP hybrid density functional calculations. The total interaction energy \$\Delta\$E\$^{T}\$ of the \$\it{C}\$\$_{4h}\$-symmetric guanine quartet consisting of Hoogsteen type base pairs with two hydrogen bonds between two neighbour bases is -66.07 kcal/mol at the highest level. The uracil quartet with C6-H6...O4 interactions between the individual bases has only a small interaction energy of -20.92 kcal/mol and the interaction energy of -24.63 kcal/mol for the alternative structure with N3-H3...O4 hydrogen bonds is only slightly more negative. Cooperative effects contribute between 10 and 25 \\% to all interaction energies. Complexes of metal ions with G-quartets can be classified into different structure types. The one with Ca\$^{2+}\$ in the central cavity adopts a \$\it{C}\$\$_{4h}\$-symmetric structure with coplanar bases, whereas the energies of the planar and non-planar Na\$^{+}\$ complexes are almost identical. The small ions Li\$^{+}\$, Be\$^{2+}\$, Cu\$^{+}\$ and Zn\$^{2+}\$ prefer a non-planar \$\it{S}\$\$_{4}\$-symmetric structure. The lack of co-planarity prevents probably a stacking of these base quartets. The central cavity is too small for K\$^{+}\$ ions and therefore this ion favours in contrast to all other investigated ions a \$\it{C}\$\$_{4}\$-symmetric complex, which is 4.73 kcal/mol more stable than the \$\it{C}\$\$_{4h}\$-symmetric one. The distance 1.665 {\AA} between K\$^{+}\$ and the root mean squares plane of the guanine bases is approximately half of the distance between two stacked G-quartets. The total interaction energy of alkaline earth ion complexes exceeds the ones with alkali ions. Within both groups of ions the interaction energy decreases with an increasing row position in the periodic table. The B3LYP and BLYP methods lead to similar structures and energies. Both methods are suitable for hydrogen-bonded biological systems. Compared with the before mentioned methods the HCTH functional leads to longer hydrogen bonds and different relative energies for two U-quartets. Finally we calculated also structures and relative energies with the MMFF94 forcefield. Contrary to all DFT methods, MMFF94 predicts bifurcated C-H...O contacts in the uracil quartet. In the G-quartet the MMFF94 hydrogen bond distances N2-H22...N7 are shorter than the DFT distances, whereas the N1-H1...O6 distances are longer.}, language = {en} } @inproceedings{KnaustSeilerReinertetal., author = {Knaust, Marius and Seiler, Enrico and Reinert, Knut and Steinke, Thomas}, title = {Co-Design for Energy Efficient and Fast Genomic Search: Interleaved Bloom Filter on FPGA}, series = {FPGA '22: Proceedings of the 2022 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays}, booktitle = {FPGA '22: Proceedings of the 2022 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays}, doi = {10.1145/3490422.3502366}, pages = {180 -- 189}, abstract = {Next-Generation Sequencing technologies generate a vast and exponentially increasing amount of sequence data. The Interleaved Bloom Filter (IBF) is a novel indexing data structure which is state-of-the-art for distributing approximate queries with an in-memory data structure. With it, a main task of sequence analysis pipelines, (approximately) searching large reference data sets for sequencing reads or short sequence patterns like genes, can be significantly accelerated. To meet performance and energy-efficiency requirements, we chose a co-design approach of the IBF data structure on the FPGA platform. Further, our OpenCL-based implementation allows a seamless integration into the widely used SeqAn C++ library for biological sequence analysis. Our algorithmic design and optimization strategy takes advantage of FPGA-specific features like shift register and the parallelization potential of many bitwise operations. We designed a well-chosen schema to partition data across the different memory domains on the FPGA platform using the Shared Virtual Memory concept. We can demonstrate significant improvements in energy efficiency of up to 19x and in performance of up to 5.6x, respectively, compared to a well-tuned, multithreaded CPU reference.}, language = {en} } @inproceedings{KnaustMayerSteinke, author = {Knaust, Marius and Mayer, Florian and Steinke, Thomas}, title = {OpenMP to FPGA Offloading Prototype Using OpenCL SDK}, series = {2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)}, booktitle = {2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)}, doi = {10.1109/IPDPSW.2019.00072}, pages = {387 -- 390}, abstract = {Field-programmable gate arrays (FPGAs) are of great interest for future high-performance computing and data analytics systems, since they are capable of efficient, highly-parallel data processing. Even though high-level synthesis became more popular in the last years, the effort of porting existing scientific software onto FPGAs is still considerable. We propose to use OpenMP target offloading as a solution, which we implement in a first prototype, making use of the preexisting OpenCL SDK of the FPGA vendor. Early results demonstrate the feasibility of this approach and also reveal that further optimizations will be necessary such that code can be written in an FPGA-agnostic way.}, language = {en} } @inproceedings{ChristgauKnaustSteinke, author = {Christgau, Steffen and Knaust, Marius and Steinke, Thomas}, title = {A First Step towards Support for MPI Partitioned Communication on SYCL-programmed FPGAs}, series = {IEEE/ACM International Workshop on Heterogeneous High-performance Reconfigurable Computing, H2RC@SC 2022, Dallas, TX, USA, November 13-18, 2022}, booktitle = {IEEE/ACM International Workshop on Heterogeneous High-performance Reconfigurable Computing, H2RC@SC 2022, Dallas, TX, USA, November 13-18, 2022}, publisher = {IEEE}, doi = {10.1109/H2RC56700.2022.00007}, pages = {9 -- 17}, abstract = {Version 4.0 of the Message Passing Interface standard introduced the concept of Partitioned Communication which adds support for multiple contributions to a communication buffer. Although initially targeted at multithreaded MPI applications, Partitioned Communication currently receives attraction in the context of accelerators, especially GPUs. In this publication it is demonstrated that this communication concept can also be implemented for SYCL-programmed FPGAs. This includes a discussion of the design space and the presentation of a prototypical implementation. Experimental results show that a lightweight implementation on top of an existing MPI library is possible. In addition, the presented approach also reveals issues in both the SYCL and the MPI standard which need to be addresses for improved support of the intended communication style.}, language = {en} } @article{KnoopGronemeierSuehringetal., author = {Knoop, Helge and Gronemeier, Tobias and S{\"u}hring, Matthias and Steinbach, Peter and Noack, Matthias and Wende, Florian and Steinke, Thomas and Knigge, Christoph and Raasch, Siegfried and Ketelsen, Klaus}, title = {Porting the MPI-parallelized LES model PALM to multi-GPU systems and many integrated core processors: an experience report}, series = {International Journal of Computational Science and Engineering. Special Issue on: Novel Strategies for Programming Accelerators}, journal = {International Journal of Computational Science and Engineering. Special Issue on: Novel Strategies for Programming Accelerators}, edition = {Special Issue on: Novel Strategies for Programming Accelerators}, publisher = {Inderscience}, abstract = {The computational power and availability of graphics processing units (GPUs), such as the Nvidia Tesla, and Many Integrated Core (MIC) processors, such as the Intel Xeon Phi, on high performance computing (HPC) systems is rapidly evolving. However, HPC applications need to be ported to take advantage of such hardware. This paper is a report on our experience of porting the MPI+OpenMP parallelised large-eddy simulation model (PALM) to multi-GPU as well as to MIC processor environments using the directive-based high level programming paradigm OpenACC and OpenMP, respectively. PALM is a Fortran-based computational fluid dynamics software package, used for the simulation of atmospheric and oceanic boundary layers to answer questions linked to fundamental atmospheric turbulence research, urban modelling, aircraft safety and cloud physics. Development of PALM started in 1997, the project currently entails 140 kLOC and is used on HPC farms of up to 43,200 cores. The main challenges we faced during the porting process are the size and complexity of the PALM code base, its inconsistent modularisation and the complete lack of a unit-test suite. We report the methods used to identify performance issues as well as our experiences with state-of-the-art profiling tools. Moreover, we outline the required porting steps in order to properly execute our code on GPUs and MIC processors, describe the problems and bottlenecks that we encountered during the porting process, and present separate performance tests for both architectures. These performance tests, however, do not provide any benchmark information that compares the performance of the ported code between the two architectures.}, language = {en} } @inproceedings{CheginiSteinkeWeiser, author = {Chegini, Fatemeh and Steinke, Thomas and Weiser, Martin}, title = {Efficient adaptivity for simulating cardiac electrophysiology with spectral deferred correction methods}, abstract = {The locality of solution features in cardiac electrophysiology simulations calls for adaptive methods. Due to the overhead incurred by established mesh refinement and coarsening, however, such approaches failed in accelerating the computations. Here we investigate a different route to spatial adaptivity that is based on nested subset selection for algebraic degrees of freedom in spectral deferred correction methods. This combination of algebraic adaptivity and iterative solvers for higher order collocation time stepping realizes a multirate integration with minimal overhead. This leads to moderate but significant speedups in both monodomain and cell-by-cell models of cardiac excitation, as demonstrated at four numerical examples.}, language = {en} }