In recent years, with the continuous improvement of high performance computing hardware platform,the application of high performance for a wide range of high-performance, traditional parallel programming environment t...
详细信息
This work aimed to perform a systematic review of the literature on teaching parallel programming using low-cost clusters, identifying the main programming languages, hardware platforms and software tools used in teac...
详细信息
Python is a widely used language in scientific computing. When the goal is high performance, however, Python lags far behind low-level languages such as C and Fortran. To support applications that stress performance, ...
详细信息
Python is a widely used language in scientific computing. When the goal is high performance, however, Python lags far behind low-level languages such as C and Fortran. To support applications that stress performance, Python needs to access the full capabilities of modern CPUs. That means support for parallel multithreading. In this article, we describe PyOMP, a system that enables OpenMP in Python. Programmers write code in Python with OpenMP, Numba generates code that compiles to LLVM, and the resulting programs run with performance that approaches that from code written with C and OpenMP. In this article, we provide an update on the PyOMP project and explain how to install it and use it to write parallel multithreaded code in Python.
Failures in Task-based parallel programming (TBPP) can severely degrade performance and result in incomplete or incorrect outcomes. Existing failure-handling approaches, including reactive, proactive, and resilient me...
详细信息
Block based programming is a cornerstone of computer science education in elementary and middle schools across the country. By providing a visual representation of coding, users without prior knowledge can more easily...
详细信息
ISBN:
(纸本)9781665484305
Block based programming is a cornerstone of computer science education in elementary and middle schools across the country. By providing a visual representation of coding, users without prior knowledge can more easily begin writing their first program. Applications like Scratch and Snap! provide accessible block-based programming. The work outlined in this paper is a continuation of a recent study parallel programming with Pictures is a Snap! [1] that focused on educating students about the importance of parallel programming in the wake of plateauing computational horsepower in a single computer core. This addition makes the progression of modules more accessible for students of all *** parallelism in the Snap! block-based coding language, we can program with parallelism and utilize multiple cores of a machine at once. By teaching about multi-core technology, students will be more aptly prepared for the future of computer science and computing technology. Expanding on this with lessons to target different audiences can help broaden the appeal of introductory programming.
We provide a detailed evaluation of several parallel programming models, emphasizing both performance and energy efficiency in heterogeneous computing systems. The evaluation employs a diverse array of hardware, inclu...
详细信息
ISBN:
(数字)9798350356038
ISBN:
(纸本)9798350356045
We provide a detailed evaluation of several parallel programming models, emphasizing both performance and energy efficiency in heterogeneous computing systems. The evaluation employs a diverse array of hardware, including Intel Xeon and AMD Epyc CPUs, along with NVIDIA GPUs featuring Pascal, Turing, and Ampere architectures, and an AMD GPU with Vega10 architecture. We utilize SYCL, OpenMP, CUDA, and HIP for implementing benchmarks in 11 varied application domains, offering a comprehensive perspective on the capabilities of these programming models in diverse computing environments.
This paper presents HPC-in-Containers, a novel containerized parallel computing environment using Docker. It is designed to facilitate learning parallel programming concepts, where users do not have to deploy a multic...
详细信息
ISBN:
(数字)9798331511470
ISBN:
(纸本)9798331511487
This paper presents HPC-in-Containers, a novel containerized parallel computing environment using Docker. It is designed to facilitate learning parallel programming concepts, where users do not have to deploy a multicomputer infrastructure. Instead, they can use their desktop and laptop to easily have a multicomputer environment by utilizing containerization on the multi-core CPU. The environment offers a comprehensive platform for exploring various parallel programming paradigms, including distributed memory parallelism, shared memory parallelism, and hybrid approaches. We include source code samples for each paradigm to demonstrate its capabilities: parallel multicomputer implementations using MPI, parallel thread implementations for single computers using OpenMP, and hybrid parallelization techniques combining both MPI and OpenMP. Furthermore, to enhance user interaction and ease of use, the Docker image incorporates a Jupyter Notebook interface with a C interpreter, allowing users to write, execute, and visualize parallel code through a web browser. This feature makes HPC-in-Containers particularly suitable for educational settings, enabling students to experiment with parallel programming concepts in a controlled, reproducible environment. Our work contributes to the field of parallel computing education by providing a flexible, scalable, and easily deployable platform that bridges the gap between theoretical concepts and practical implementation. It offers a valuable resource for educators, students, and researchers seeking to explore and master the intricacies of parallel programming in a containerized setting.
Understanding the performance behavior of parallel applications is important in many ways, but doing so is not easy. Most open source analysis tools are written for the com mand line. We are building on these proven t...
详细信息
ISBN:
(数字)9798350364606
ISBN:
(纸本)9798350364613
Understanding the performance behavior of parallel applications is important in many ways, but doing so is not easy. Most open source analysis tools are written for the com mand line. We are building on these proven tools to provide an interactive performance analysis experience within Jupyter Notebooks when developing parallel code with MPI, OpenMP, or both. Our solution makes it possible to measure the execution time, perform profiling and tracing, and visualize the results within the notebooks. For ease of use, it provides both a graphical JupyterLab extension and a C++ Api. The JupyterLab extension shows a dialog where the user can select the type of analysis and its parameters. Internally, this tool uses Score-P,Scalasca, and Cube to generate profiling and tracing data. This tight integration gives students easy access to profiling tools and helps them better understand concepts such as benchmarking, scalability and performance bottlenecks. In addition to the technical development, the article presents hands-on exercises from our well-established parallel programming course. We conclude with a qualitative and quantitative evaluation with 19 students, which shows a positive effect of the tools on the students' perceived competence.
While parallel programming, particularly on graphics processing units (GPUs), and numerical optimization hold immense potential to tackle real-world computational challenges across disciplines, their inherent complexi...
详细信息
ISBN:
(数字)9798350364606
ISBN:
(纸本)9798350364613
While parallel programming, particularly on graphics processing units (GPUs), and numerical optimization hold immense potential to tackle real-world computational challenges across disciplines, their inherent complexity and technical demands often act as daunting barriers to entry. This, unfortunately, limits accessibility and diversity within these crucial areas of computer science. To combat this challenge and ignite excitement among undergraduate learners, we developed an application-driven course, harnessing robotics as a lens to demystify the intricacies of these topics making them tangible and engaging. Our course's prerequisites are limited to the required undergraduate introductory core curriculum, opening doors for a wider range of students. Our course also features a large final-project component to connect theoretical learning to applied practice. In our first offering of the course we attracted 27 students without prior experience in these topics and found that an overwhelming majority of the students felt that they learned both technical and soft skills such that they felt prepared for future study in these fields.
The development of real-time systems is one of the areas with the highest relevance in computer science, and the number of critical systems has increased significantly. These systems considers several applications run...
详细信息
暂无评论