2 research outputs found

    PHIST: a Pipelined, Hybrid-parallel Iterative Solver Toolkit

    Get PDF
    The increasing complexity of hardware and software environments in high-performance computing poses big challenges on the development of sustainable and hardware-efcient numerical software. This paper addresses these challenges in the context of sparse solvers. Existing solutions typically target sustainability, flexibility or performance, but rarely all of them. Our new library PHIST provides implementations of solvers for sparse linear systems and eigenvalue problems. It is a productivity platform for performance-aware developers of algorithms and application software with abstractions that do not obscure the view on hardware-software interaction. The PHIST software architecture and the PHIST development process were designed to overcome shortcomings of existing packages. An interface layer for basic sparse linear algebra functionality that can be provided by multiple backends ensures sustainability, and PHIST supports common techniques for improving scalability and performance of algorithms such as blocking and kernel fusion. We showcase these concepts using the PHIST implementation of a block Jacobi-Davidson solver for non-Hermitian and generalized eigenproblems. We study its performance on a multi-core CPU, a GPU and a large-scale many-core system. Furthermore, we show how an existing implementation of a block Krylov-Schur method in the Trilinos package Anasazi can beneft from the performance engineering techniques used in PHIST

    Teaching and Evaluating Collaborative Group Work in Large Visualization Courses

    No full text
    The growing number of students can be a challenge for teaching visualization lectures, supervision, evaluation, and grading. Moreover, designing a visualization course, matching the different experiences and skills of the students is one major goal in order to find a common solvable task for all of the students. However, the given task is important to follow a common goal, to collaborate in small project groups, but also to further experience, learn, or extend programming skills. In this paper we describe an approach to manage a large number of 272 students in a design-based active learning course who were relatively unexperienced first year bachelor students with a wide range of programming skills. We explain different subsequent stages to successfully handle the upcoming problems and describe how many and to which extent supervisors are involved in the development of the project. The project task description is given in a way that it has a minimal number of requirements but can be extended in many directions while most of the decisions are up to the students like programming languages, visualization approaches, or interaction techniques. Finally, we discuss the benefits and drawbacks of our teaching strategy
    corecore