English
Related papers

Related papers: Migrating CUDA to oneAPI: A Smith-Waterman Case St…

200 papers

HPC systems employ a growing variety of compute accelerators with different architectures and from different vendors. Large scientific applications are required to run efficiently across these systems but need to retain a single code-base…

Sequence alignment is a cornerstone of bioinformatics, widely used to identify similarities between DNA, RNA, and protein sequences and studying evolutionary relationships and functional properties. The Needleman-Wunsch algorithm remains a…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-12-31 Linus Zwaka

Efficiently exploiting GPUs is increasingly essential in scientific computing, as many current and upcoming supercomputers are built using them. To facilitate this, there are a number of programming approaches, such as CUDA, OpenACC and…

Performance · Computer Science 2017-11-07 G. D. Balogh , I. Z. Reguly , G. R. Mudalige

The utilization of performance monitoring probes is a valuable tool for programmers to gather performance data. However, the manual insertion of these probes can result in an increase in code size, code obfuscation, and an added burden of…

Performance · Computer Science 2023-11-08 David Weisskopf Holmqvist , Suejb Memeti

Currently, the most energy-efficient hardware platforms for floating point-intensive calculations (also known as High Performance Computing, or HPC) are graphical processing units (GPUs). However, porting existing scientific codes to GPUs…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-03-28 Michele Martone , Julia Lawall

Modern unified programming models (such as CUDA and SYCL) that combine host (CPU) code and GPU code into the same programming language, same file, and same lexical scope lack adequate support for GPU code specialization, which is a key…

Graphics · Computer Science 2022-07-19 Kerry A. Seitz , Theresa Foley , Serban D. Porumbescu , John D. Owens

The heterogeneous computing paradigm has led to the need for portable and efficient programming solutions that can leverage the capabilities of various hardware devices, such as NVIDIA, Intel, and AMD GPUs. This study evaluates the…

Programming Languages · Computer Science 2023-11-13 Manuel Costanzo , Enzo Rucci , Carlos García Sánchez , Marcelo Naiouf , Manuel Prieto-Matías

While parallelism remains the main source of performance, architectural implementations and programming models change with each new hardware generation, often leading to costly application re-engineering. Most tools for performance…

Programming Languages · Computer Science 2022-07-04 William S. Moses , Ivan R. Ivanov , Jens Domke , Toshio Endo , Johannes Doerfert , Oleksandr Zinenko

Parallel computing is a standard approach to achieving high-performance computing (HPC). Three commonly used methods to implement parallel computing include: 1) applying multithreading technology on single-core or multi-core CPUs; 2)…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-09-18 Xinyao Yi

The ShenWei many-core series processors powering multiple cutting-edge supercomputers are equipped with their unique on-chip heterogeneous architecture. They have long required programmers to write separate codes for the control part on…

Programming Languages · Computer Science 2022-08-02 Huanqi Cao , Jiajie Chen

The inability to predict lasting languages and architectures led us to develop OCCA, a C++ library focused on host-device interaction. Using run-time compilation and macro expansions, the result is a novel single kernel language that…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-03-06 David S Medina , Amik St-Cyr , T. Warburton

OpenCL, along with CUDA, is one of the main tools used to program GPGPUs. However, it allows running the same code on multi-core CPUs too, making it a rival for the long-established OpenMP. In this paper we compare OpenCL and OpenMP when…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-03-24 Kamran Karimi

In this paper, we introduce Continuation Passing C (CPC), a programming language for concurrent systems in which native and cooperative threads are unified and presented to the programmer as a single abstraction. The CPC compiler uses a…

Programming Languages · Computer Science 2012-11-15 Gabriel Kerneis , Juliusz Chroboczek

Recent advances in computing architectures and networking are bringing parallel computing systems to the masses so increasing the number of potential users of these kinds of systems. In particular, two important technological evolutions are…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-04-05 Gabriele D'Angelo , Moreno Marzolla

CUDA (formerly an abbreviation of Compute Unified Device Architecture) is a parallel computing platform and API model created by Nvidia allowing software developers to use a CUDA-enabled graphics processing unit (GPU) for general purpose…

Cryptography and Security · Computer Science 2021-09-14 Miroslav Dimitrov , Bernhard Esslinger

With the appearance of the heterogeneous platform OpenPower,many-core accelerator devices have been coupled with Power host processors for the first time. Towards utilizing their full potential, it is worth investigating performance…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-11-07 Erik Zenker , René Widera , Axel Huebl , Guido Juckeland , Andreas Knüpfer , Wolfgang E. Nagel , Michael Bussmann

In recent years, utilization of heterogeneous hardware other than small core CPU such as GPU, FPGA or many core CPU is increasing. However, when using heterogeneous hardware, barriers of technical skills such as CUDA are high. Based on…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-11-10 Yoji Yamato

In this paper, we introduce Heteroflow, a new C++ library to help developers quickly write parallel CPU-GPU programs using task dependency graphs. Heteroflow leverages the power of modern C++ and task-based approaches to enable efficient…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-03-17 Tsung-Wei Huang , Yibo Lin

Nowadays, the paradigm of parallel computing is changing. CUDA is now a popular programming model for general purpose computations on GPUs and a great number of applications were ported to CUDA obtaining speedups of orders of magnitude…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-02-09 Bogdan Oancea , Tudorel Andrei

This paper presents BDDT-SCC, a task-parallel runtime system for non cache-coherent multicore processors, implemented for the Intel Single-Chip Cloud Computer. The BDDT-SCC runtime includes a dynamic dependence analysis and automatic…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-06-15 Alexandros Labrineas , Polyvios Pratikakis , Dimitrios S. Nikolopoulos , Angelos Bilas