English
Related papers

Related papers: An approach to performance portability through gen…

200 papers

Leading HPC systems achieve their status through use of highly parallel devices such as NVIDIA GPUs or Intel Xeon Phi many-core CPUs. The concept of performance portability across such architectures, as well as traditional CPUs, is vital…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-11-10 Alan Gray , Kevin Stratford

Like other engineering disciplines, software engineering should also have principles to guide the construction of sustainable computer applications. Tangible properties include a) unlimited scalability, b) maximal reproducibility, and c)…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-07-23 Justin Shi

Developing software to undertake complex, compute-intensive scientific processes requires a challenging combination of both specialist domain knowledge and software development skills to convert this knowledge into efficient code. As…

Distributed, Parallel, and Cluster Computing · Computer Science 2013-09-05 Jeremy Cohen , Chris Cantwell , Neil Chue Hong , David Moxey , Malcolm Illingworth , Andrew Turner , John Darlington , Spencer Sherwin

Computing systems have become increasingly complex with the emergence of heterogeneous hardware combining multicore CPUs and GPUs. These parallel systems exhibit tremendous computational power at the cost of increased programming effort.…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-02-10 Michel Steuwer , Christian Fensch , Christophe Dubach

High-performance computing (HPC) is essential for tackling complex computational problems across various domains. As the scale and complexity of HPC applications continue to grow, the need for scalable systems and software architectures…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-08-21 Risshab Srinivas Ramesh

The increasing demands for computing performance have been a reality regardless of the requirements for smaller and more energy efficient devices. Throughout the years, the strategy adopted by industry was to increase the robustness of a…

Software Engineering · Computer Science 2019-05-07 Hugo Andrade , Ivica Crnkovic

The most important way to achieve higher performance in computer systems is through heterogeneous computing, i.e., by adopting hardware platforms containing more than one type of processor, such as CPUs, GPUs, and FPGAs. Several types of…

Software Engineering · Computer Science 2020-05-19 Hugo Andrade , Ivica Crnkovic , Jan Bosch

We advocate a domain specific software development methodology for heterogeneous computing platforms such as Multicore CPUs, GPUs and FPGAs. We argue that three specific benefits are realised from adopting such an approach: portable,…

Computational Engineering, Finance, and Science · Computer Science 2014-08-22 Gordon Inggs , David Thomas , Wayne Luk

The Portable Extensible Toolkit for Scientific computation (PETSc) library delivers scalable solvers for nonlinear time-dependent differential and algebraic equations and for numerical optimization.The PETSc design for performance…

In the ever-shifting landscape of software engineering, we recognize the need for adaptation and evolution to maintain system dependability. As each software iteration potentially introduces new challenges, from unforeseen bugs to…

Software Engineering · Computer Science 2024-07-11 Nazanin Akhtarian , Hamzeh Khazaei , Marin Litoiu

Recently, heterogeneous hardware such as GPU and FPGA is used in many systems and also IoT devices are increased repidly. However, to utilize heterogeneous hardware, the hurdles are high because of much technical skills. In order to break…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-03-22 Yoji Yamato , Hirofumi Noguchi , Misao Kataoka , Takuma Isoda

High Performance Distributed Computing is essential to boost scientific progress in many areas of science and to efficiently deploy a number of complex scientific applications. These applications have different characteristics that require…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-12-04 Mariza Ferro , Antonio R. Mury , Laion F. Manfroi , Bruno Schlze

We present an open architecture for just-in-time code generation and dynamic code optimization that is flexible, customizable, and extensible. While previous research has primarily investigated functional aspects of such a system,…

Operating Systems · Computer Science 2007-05-23 Thomas Kistler , Michael Franz

In recent years, various vendors have made quantum software frameworks available. Yet with vendor-specific frameworks, code portability seems at risk, especially in a field where hardware and software libraries have not yet reached a…

Quantum Physics · Physics 2022-03-15 Manuel Schönberger , Maja Franz , Stefanie Scherzinger , Wolfgang Mauerer

The ability to express a program as a hierarchical composition of parts is an essential tool in managing the complexity of software and a key abstraction this provides is to separate the representation of data from the computation. Many…

Programming Languages · Computer Science 2012-10-04 James Hanlon , Simon J. Hollis , David May

Large, complex, multi-scale, multi-physics simulation codes, running on high performance com-puting (HPC) platforms, have become essential to advancing science and engineering. These codes simulate multi-scale, multi-physics phenomena with…

Computational Engineering, Finance, and Science · Computer Science 2014-10-24 A. Dubey , S. Brandt , R. Brower , M. Giles , P. Hovland , D. Q. Lamb , F. Loffler , B. Norris , B. OShea , C. Rebbi , M. Snir , R. Thakur

HPC-based applications often have complex workflows with many software dependencies that hinder their portability on contemporary HPC architectures. In addition, these applications often require extraordinary efforts to deploy and execute…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-12-14 Sameh Abdulah , Jorge Ejarque , Omar Marzouk , Hatem Ltaief , Ying Sun , Marc G. Genton , Rosa M. Badia , David E. Keyes

Reconfigurable computing refers to the use of processors, such as Field Programmable Gate Arrays (FPGAs), that can be modified at the hardware level to take on different processing tasks. A reconfigurable computing platform describes the…

Hardware Architecture · Computer Science 2007-05-23 Darran Nathan , Kelvin Lim Mun Kit , Kelly Choo Hon Min , Philip Wong Jit Chin , Andreas Weisensee

Building and deploying software on high-end computing systems is a challenging task. High performance applications have to reliably run across multiple platforms and environments, and make use of site-specific resources while resolving…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-04-12 Lucas Benedicic , Felipe A. Cruz , Alberto Madonna , Kean Mariotti

Generic programming is an effective methodology for developing reusable software libraries. Many programming languages provide generics and have features for describing interfaces, but none completely support the idioms used in generic…

Programming Languages · Computer Science 2007-08-17 Jeremy G. Siek , Andrew Lumsdaine